Jenkins déploie automatiquement tomcat 7

Nous essayons de déployer un fichier de guerre avec Jenkins, mais rien ne semble se produire.

Le projet est construit avec succès et nous utilisons le plug-in de déploiement Jenkins. Il est configuré avec les options suivantes:

Déploiement automatique du plugin

Les étapes de post sont définies sur “Exécuter quel que soit le résultat de la génération”.

J’ai vérifié que les informations d’identification sont correctes, car je peux accéder à la page du gestionnaire dans mon navigateur.

Voici la dernière partie que Jenkins (Maven) produit:

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:24.506s [INFO] Finished at: Tue Feb 14 12:10:45 UTC 2012 [INFO] Final Memory: 22M/52M [INFO] ------------------------------------------------------------------------ channel stopped Finished: SUCCESS 

Je peux aussi changer le fichier WAR / EAR en quelque chose qui n’existe pas et cela ne me donnera pas d’erreurs, ce qui est un peu étrange. Que fais-je mal ici?

J’avais le même problème et, dans mon cas, le chemin (relatif) du fichier WAR était incorrect. Apparemment, si vous ne l’avez pas exactement correct (il doit être relatif à la racine de l’espace de travail), le plug-in de déploiement échouera silencieusement. Dans mon cas, le chemin était:

target / any.war

Une fois que cela a été corrigé, j’ai rencontré un problème différent dans la mesure où le plug-in s’attend à se connecter à la version manager / text de Tomcat Manager, plutôt qu’à la version manager / html que je configure généralement par défaut. Vous aurez besoin d’une ligne dans votre fichier tomcat-users.xml comme suit:

(Ceci s’ajoute au rôle “manager-gui” que vous avez probablement déjà configuré.)

Une fois ces modifications apscopes, la construction et le déploiement ont parfaitement fonctionné.

J’utilise le plugin Hudson Post Build Task pour exécuter une boucle contre l’API / manager / text

Les plugins mentionnés peuvent être sélectionnés et installés à partir de la liste des plugins disponibles dans la configuration Jenkins.

Une fois que le plug-in est installé, il vous suffit d’activer la “tâche post-construction” et d’append la ligne suivante:

 curl -T - -u user:pass 'http:///manager/text/deploy?update=true&path=/' <  

Par exemple:

 curl -T - -u manager:123456 'http://localhost:8080/manager/text/deploy?update=true&path=/slim' < /target/dist/slim.war 

Vous pouvez également utiliser wget , mais avec la commande ci-dessus, vous enregistrez la sortie et vérifiez si le déploiement a rencontré un problème.


Voici la documentation relative au service / manager / text

Avez-vous utilisé le plug-in Cargo ? Eh bien, j’avais aussi la même configuration que vous, Jenkins, Maven et Tomcat. Mais quand j’avais besoin de déployer, j’utilisais simplement ce plugin. Cela fait un moment en fait, mais dans Jenkins, vous avez été capable d’entrer des lignes d’invite de commande non? Comme mvn clean install? Donc, ce que vous pouvez faire est simplement configurer votre plugin pom for Cargo et ensuite append cette ligne à votre Jenkins:

 mvn cargo:deploy -Pintegration 

De cette façon, j’ai pu installer quotidiennement mes builds et les déployer sur Tomcat. Après je faisais mes tests de repos.

Pour ce que cela vaut, la dernière version du plug-in Deploy pour Jenkins ne semble avoir besoin que de l’URL de base. Donc, pour moi, c’était http://blah.com:8080

Avant cela, j’avais essayé une foule d’autres options, y compris host-manager / html, host-manager / text

En supposant que Jenkins trouve votre pom.xml à comstackr. Définissez vos objectives et options dans votre configuration Jenkins pour comstackr le package . Jenkins essaiera alors de trouver votre fichier de guerre et de le déployer. Bonne chance.

J’ai essayé d’utiliser la solution de target / any.war mais ça ne marche pas, j’ai donc essayé d’utiliser * / .war et ça marche

vous pouvez voir que sur jenkins le guide définitif EN Vous devez spécifier où trouver les fichiers que vous voulez dans l’espace de travail de l’autre tâche de construction, et où Jenkins doit les placer dans l’espace de travail de votre projet actuel. Cela peut être une expression régulière flexible (telle que * / .war , pour tout fichier WAR produit par le travail de génération), ou elle peut être beaucoup plus précise (comme gameoflife-web / target / gameoflife.war).

ou sur Déployer sur Tomcat en branchant DEPLOY

garder les rôles manager-gui, admin-gui pour l’utilisateur qui a été configuré la page Jenkins

Exemple:-