Maven Déployer Sur Plusieurs Serveurs Tomcat
Ce qui est le plus minime exemple de déploiement d'une guerre à plusieurs serveurs tomcat à l'aide de maven qui peut être écrit?
J'ai essayé les Url suivantes et a demandé à la liste de diffusion, mais ne vient pas avec tout ce qui a été de courte et de tout simplement le travail.
L'exemple doit avoir les serveurs définis dans l'exemple quelque part (avec des exemples de noms d'utilisateur/mots de passe)
Vous devez vous connecter pour publier un commentaire.
L'idée de Markus Lux peut aussi être appliqué avec un Maven2 solution, avec la gestion des profils:
Ensuite, vous aurez juste besoin de lancer X fois la mvn de commande, avec le paramètre adéquat (-Denv=toto1, -Denv=foo2,...)
En plus de cela, vous pouvez améliorer cette solution à l'aide de la Matrice de la Hudson serveur d'Intégration Continue. J'ai donné une courte explication sur cette fonction ici.
Fondamentalement, il vous suffit de définir un "normal" Maven2 emploi dans l'Hudson, et avec la Matrice, vous pouvez demander à Hudson pour exécuter cette tâche plusieurs fois, l'une par l'environnement. En d'autres termes, vous créez votre Hudson travail, et puis vous définissez le milieu de "l'axe du mal" avec toutes les valeurs possibles pour le env paramètre:
Hudson sera alors de construire l'application à la mvn de commande et avec le paramètre -Denv=toto1.Une fois cette construction est terminée, il va construire la même application, mais avec le paramètre -Denv=foo2, et ainsi de suite...
De cette façon, Hudson va déployer votre application, dans tous les environnements...
J'espère que ma solution va vous aider à atteindre vos objectifs...
En ce qui concerne l'utilisation de plusieurs profils, le cycle de vie semblait dupliquer certaines mesures - par exemple, le nombre de tests doublé lors de l'utilisation de profils activés par des variables. Nous avons constaté que l'utilisation de la catalina-ant de la bibliothèque a été beaucoup plus efficace 😉 et de ses "minimal". Utiliser des "exécutions" de l'élément à fixer le "run" objectif d'une phase du cycle de vie pour la rationaliser, ou courir après package: mvn package antrun:exécuter
Vous pourriez obtenir un peu plus de fantaisie avec l'ant-contrib bibliothèque, et de créer une boucle avec une liste de serveurs, mais voici une configuration statique pour 2 codés en dur url du serveur.
La version spécifique de catalina-ant utilisé ci-dessus a été déployé manuellement à notre distribué repository maven, il peut être trouvé dans le répertoire lib de tomcat distribution.
C'est tout à fait une réponse tardive à une vieille question, mais je suis assez sûr que les gens vont être intéressés. J'ai juste réalisé à l'exécution de plusieurs déploiements à l'aide de maven et ant tâches. Le secret est d'utiliser un macrodef (ou 2 pour moi, comme je le déploiement à chaud mes applications dans la jetée et la nécessité de transférer une guerre et un fichier xml) et l'utilisation d'une propriété ant fichier :
Alors vous fichier de propriété doit être quelque chose comme :
etc... sur un bloc de l'option dans la configuration du serveur utilisé par
Le truc, c'est que macrodef attribut à l'aide de @{} comme la priorité sur l'évaluation de propriété ${} dans ant.
Peut-être le "minimum" n'est pas minimal à tous. Si vous avez des problèmes avec le fait que, dans maven elle-même, essayez d'utiliser ant: créer deux différents déployer des tâches (une par serveur) et une autre tâche qui a comme des dépendances. Il existe plusieurs exemples de la façon de déployer sur un serveur tomcat à l'aide de ant. Juste google leur.
Fait ce, vous avez besoin pour intégrer les nouvelles tâches ant dans maven qui n'est pas bien difficile à l'aide de la antrun plugin.
Cette réponse est pour le ponton et pour une situation légèrement différente, mais vous trouverez peut-être utile de toute façon.
Sur un précédent projet, nous avons utilisé la Jetée, j'ai donc écrit une simple Jetée deployer module qui permettrait d'analyser périodiquement le repository maven et de télécharger et déployer de nouveaux artefacts dès qu'ils sont disponibles. Cela a bien fonctionné sur un petit groupe de mise en scène et de machines de développement.
Vous pouvez trouver le code à Google Code dans le Polaire Rose Maven Jetty Deployer projet.
Noter que nous ne l'as fait pour le développement et la mise en scène des serveurs. À mon avis, la production apps ne devrait jamais être mis à niveau automatiquement.