Comment déployer L'application SpringBoot Maven avec Jenkins?

j'ai une application de démarrage à ressort qui fonctionne sur un conteneur Tomcat servlet intégré mvn spring-boot:run. Et je ne veux pas déployer le Projet Comme guerre séparée pour Tomcat autonome.

chaque fois que je pousse le code à BitBucket/Github, un crochet court et déclenche le travail de Jenkins (court sur Amazon EC2) pour déployer l'application.

Le Jenkins a un post-construction de l'action: mvn spring-boot:run, le problème est que le travail est suspendu lorsque l'action post build est terminée.

Il devrait y être une autre façon de le faire. Toute aide serait appréciée.

17
demandé sur azizunsal 2015-02-13 15:51:44

4 réponses

Le problème est que Jenkins ne gère pas de frai de l'enfant processus de builds très bien. Contournement suggéré par @Steve dans le commentaire ( | grep $service > /dev/null then sudo service myapp stop sudo unlink /etc/init.d/myapp sudo chmod +x /path/to/your/myapp.jar sudo ln -s /path/to/your/myapp.jar /etc/init.d/myapp sudo service myapp start else sudo chmod +x /path/to/your/myapp.jar sudo ln -s /path/to/your/myapp.jar /etc/init.d/myapp sudo service myapp start fi

Enregistrer et exécuter votre travail, le service doit démarrer automatiquement.

2
répondu Anatole Nkwadjo 2017-03-31 12:23:40

nohup et at now + 1 minutes ne fonctionne pas pour moi. Comme Jenkins tuait le processus en arrière-plan, j'ai veillé à ce que le processus ne soit pas tué en mettant un faux BUILD_ID à cette tâche de Jenkins. Voici à quoi ressemble la tâche shell de Jenkins Execute:

BUILD_ID=do_not_kill_me
java -jar -Dserver.port=8053 /root/Deployments/my_application.war &
exit

tel que discuté ici.

1
répondu Sujay Anjankar 2017-04-06 09:21:58