【发布时间】:2018-10-15 14:54:48
【问题描述】:
我正在尝试将 Spring Boot 应用程序部署到 AWS EC2 实例。我看过很多博客和教程完全解释了部署过程,这是可以理解的。我正在努力如何在 jenkins 中进行持续部署或交付,哪个主要功能在那时 Spring Boot 应用程序名称或 jar 文件名会发生变化。
我的管道
pipeline {
agent any
tools{
maven 'localmaven'
}
stages {
stage('Build') {
steps {
sh 'mvn clean package'
}
post {
success {
echo 'Now Archiving...'
archiveArtifacts artifacts: '**/target/*.jar'
}
}
}
stage('Deliver') {
steps {
sh 'scp -v -o StrictHostKeyChecking=no -i /var/lib/jenkins/secrets/mykey target/*.jar ubuntu@00.00.00.00:/home/ubuntu'
sh "sshpass -p password ssh -o StrictHostKeyChecking=no -i /var/lib/jenkins/secrets/mykey ubuntu@00.00.00.00 '/home/ubuntu/start.sh'"
}
}
}
}
服务器启动、停止和重启在 shell 脚本中处理。
我的 start.sh
#!/bin/bash
nohup java -jar /home/ubuntu/aws-0.0.1-SNAPSHOT.jar > /home/ubuntu/log.txt 2>&1 &
echo $! > /home/ubuntu/pid.file
这完美地启动了我的服务器并且工作正常..
这里我的疑问是目前在 start.sh 我使用相同的 jar 文件名,所以它工作正常,但在生产中使用版本更改 jar 文件名也会改变如何处理这种情况。 帮助我了解该过程。我在哪里可以获得完整的想法和一切 在此先感谢
【问题讨论】:
标签: java bash spring-boot jenkins continuous-deployment