J’utilise Intellij Ultimate avec Tomcat et je déploie une guerre. Tout se déploie bien dans le répertoire webapp de tomcat.
Lorsque je change un fichier comme un fichier xhtml, y a-t-il un moyen pour tomcat de détecter automatiquement ce changement? Dès maintenant, je dois copier le fichier à partir de intellij et le copier dans le répertoire où il se trouve dans le répertoire webapp de tomcat. Je sais que certains fichiers nécessiteront une recompilation, mais les fichiers xhtml n’en font pas partie.
Cela ne peut pas être fait si vous déployez une guerre avec IntelliJ IDEA. Cependant, cela peut être si vous déployez une guerre éclatée . Dans IDEA:
my-webapp-name:war
my-webapp-name:war exploded
Désormais, chaque fois que vous apportez une modification, IDEA redéploiera le (s) fichier (s) modifié (s) lorsque la trame d’IDEA est désactivée (perte de focus). Cela prend une ou deux secondes, vous le verrez dans la barre d’état inférieure dans IDEA. Évidemment. vous devrez toujours actualiser votre navigateur Web pour qu’il récupère le nouveau fichier (à moins bien sûr que la page ait un rafraîchissement automatique d’ajax comme fetch).
Une bonne combinaison avec Tomcat consiste à définir “Désactivation de l’image” sur “Mettre à jour les ressources” et l’action “Activer” sur “Redéployer” ou “Redémarrer le serveur”. Cela permet aux pages statiques d’être rapidement mises à jour via la désactivation du cadre. classe mise à jour via l’action ‘update’.
Une entreprise nommée ZeroTurnaround vend JRebel, une solution dynamic de chargement de classe. Ils ont aussi une série de cinq parties sur le sujet qui est très bonne.
Permettez-moi de décrire la séquence d’actions en utilisant des captures d’écran:
Cliquez sur l’icône Ajouter, sélectionnez «artefact», puis sélectionnez pizza_mvc:war exploded
:
Modifiez “Action de mise à jour” et “Désactivation de la trame”:
Chaque fois que vous souhaitez actualiser vos ressources, appuyez sur
Si vous souhaitez mettre à jour les classes et les ressources, exécutez Tomcat en mode débogage . Dans ce mode, IntelliJ met à jour les classes et les ressources sans problème (échange à chaud).
J’ai le même problème. IntelliJ n’a pas mis à jour mon projet, car je cours en mode “Run”. Lorsque je cours en mode debug et que j’appuie sur Ctrl+F10
, il met à jour les classes et les ressources.
J’ai trouvé un meilleur moyen.
Dans Eclipse, nous avons automatiquement compilé, compilé et rechargé les fichiers statiques. En fait, les fichiers statiques sont servis directement à partir de src / main / webapp .
Dans IntelliJ, au lieu de servir directement depuis src / main / webapp , il y a un dossier créé dans target, dans lequel vous aurez une copie de votre src / main / webapp ainsi que d’autres liens contextuels .. web-inf / classes / lib.
Si vous placez à la place de la cible le résultat de l’artefact éclaté sur src / main / webapp , il ne vous écrasera pas et servira directement, vous n’aurez pas à bash – mettez à jour les ressources / mises à jour des ressources et des classes
Donc, ce que vous devez faire dans IntelliJ est
Après cela, si vous avez des tâches qui modifient des fichiers statiques en dehors d’IntelliJ, vous verrez immédiatement les modifications sans passer par IntelliJ et Update Resources . Pour les classes, vous aurez cette macro qui sauvegarde et comstackra (Remarque: / Recomstack: cmd + shift + F9 / cmd + F9 – si vous avez plusieurs éditeurs ouverts, vous verrez que vos éditeurs sales * seront sales et les changements (classes) seront rechargés)