Comment exécuter un serveur DropWizard/Jersey localement sans avoir à redémarrer et reconditionner pour obtenir les mises à jour des fichiers d'actifs ?
-
20-12-2019 - |
Question
Je travaille côté client d'un projet qui utilise DropWizard.Malheureusement, ce que je vis, c'est que pour apporter une modification aux actifs, je dois arrêter le serveur, empaqueter les actifs avec maven, puis réexécuter le serveur, sinon les actifs ne seront pas mis à jour.
J'ai essayé d'ajouter dropwizard-configurable-assets-bundle mais je vois toujours le même comportement.Voici le service après l'avoir ajouté :
Service.java
public void initialize(strap<ServiceConfiguration> strap) {
// Assets
strap.addBundle(new ConfiguredAssetsBundle(
"/dashboard/app/", "/dashboard/", "index.html"
));
// Redirect /dashboard to /dashboard/
strap.addBundle(new RedirectBundle(ImmutableMap.<String, String>builder()
.put("/dashboard", "/dashboard/").build()));
}
je cours actuellement mvn package && java -jar target/pack.jar server config.yml
.J'ai essayé d'utiliser Eclipse mais je devais le redémarrer manuellement et il n'était pas reconditionné pour moi, donc cela ralentissait encore plus les choses.
Tout ce processus est vraiment cela me ralentit et j'espère que c'est juste mon ignorance du monde qu'est Java.
La solution
Si vos actifs sont regroupés sous src/main/resources
alors ils devraient simplement se mettre à jour automatiquement avec Eclipse sans qu'un redémarrage soit nécessaire, tant que vous exécutez le service exécutable main()
depuis l'EDI.
Vous devrez peut-être vérifier que votre plugin Maven est défini sur "générer des ressources" lors des modifications, mais ce n'est que le paramètre par défaut et devrait donc déjà être en place.
Ce que vous décrivez est tout à fait possible dans Eclipse. J'ai une expérience personnelle en matière de modifications de ressources (par ex.modifier et enregistrer un actif HTML), puis voir une mise à jour immédiate en ne faisant rien d'autre qu'une actualisation du navigateur.
Autres conseils
Dans mon Intellij Idea, j'utilise JRebel
plug-in prévu à cet effet.JRebel prend également en charge Eclipse.