环境说明
| 主机名 | IP | 说明 |
|---|---|---|
| jenkins | 192.168.100.110 | jenkins服务器,已部署tomcat与jenkins,已关闭防火墙与SELinux |
| server | 192.168.100.120 | 发布项目的服务器,已部署tomcat,已关闭防火墙与SELinux |
进入jenkins管理界面创建新项目
输入任务名称,任务类型选择流水线或多分支流水线,然后点击下一步
点击流水线,编写脚本
在流水线中选择GitHub+Maven,然后对代码框中的代码进行修改,完成后点击保存
pipeline {
agent any
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git 'https://gitee.com/quan93/tomcat-java-demo.git'
// Run Maven on a Unix agent.
sh "mvn -Dmaven.test.failure.ignore=true clean package"
sh "mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war"
// To run Maven on a Windows agent, use
// bat "mvn -Dmaven.test.failure.ignore=true clean package"
}
}
stage("publish"){
steps{
sh "ssh root@192.168.100.120 'tar -Jcf /opt/backup/myapp-`date +%F`.tar.xz /usr/local/tomcat/webapps/myapp'"
sh "scp target/myapp.war root@192.168.100.120:/usr/local/tomcat/webapps/"
sh "ssh root@192.168.100.120 '/usr/local/tomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start'"
}
}
}
}
当要发布项目时,点击立即构建
这里出现报错信息是因为第一次构建没有对应文件,先将该行代码注释掉
将代码注释掉后即可重新构建即可
//sh "ssh root@192.168.100.120 'tar -Jcf /opt/backup/myapp-`date +%F`.tar.xz /usr/local/tomcat/webapps/myapp'"
sh "scp target/myapp.war root@192.168.100.120:/usr/local/tomcat/webapps/"
sh "ssh root@192.168.100.120 '/usr/local/tomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start'"
访问测试
当非第一次构建项目时,要对之前构建的项目进行备份,将刚刚注释掉的那行代码取消注释,并在server端创建对应的备份目录
[root@server ~]# mkdir /opt/backup
sh "ssh root@192.168.100.120 'tar -Jcf /opt/backup/myapp-`date +%F`.tar.xz /usr/local/tomcat/webapps/myapp'"
sh "scp target/myapp.war root@192.168.100.120:/usr/local/tomcat/webapps/"
sh "ssh root@192.168.100.120 '/usr/local/tomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start'"
在server端查看是否备份成功
[root@server ~]# ls /opt/backup/ myapp-2021-10-19.tar.xz



