Optimiser le temps de déploiement devient parfois crucial pour éviter de perdre des heures... Après avoir tenté des plugins maven (comme cargo par exemple) sans être totalement convaincu par leur efficacité (quand ça marche!), il m'a semblé plus efficace de recourir au script shell.

Maven est idéal pour toutes ces tâches mais nécessite parfois un peu de tuning, notamment lorsqu'on lui demande le packaging de l'application avec le plugin maven-war-plugin. L'opération est laborieuse et nécessite ensuite le déploiement d'un WAR ce qui veut dire que (de façon raccourcie car maven fait plus de choses en réalité) :

  • maven compile l'application
  • Maven copie les classes compilées et les fichiers de ressource dans une structure éclaté (dans le répertoire target)
  • Maven zippe le tout dans un WAR (et c'est long!)
  • ensuite il faut uploader le WAR vers le serveur cible
  • Tomcat ou votre serveur d'application java doit ensuite dézipper l'archive...
Au final vous avez plusieurs opérations couteuses en temps et en ressource. Tout doit être fait manuellement.

Comment accélérer le processus ?

Julien DUBOIS propose sur le blog de Responcia une solution intéressante pour optimiser vos développements avec Jetty. Il apporte la preuve en vidéo que l'on peut améliorer les productivité des développements Java de cette façon. Mais parfois, il n'est pas possible d'opter pour Jetty...