拉取代码
[root@localhost opt]# git clone https://gitee.com/forgotten/tomcat-java-demo.git 正克隆到 'tomcat-java-demo'... remote: Enumerating objects: 558, done. remote: Counting objects: 100% (558/558), done. remote: Compressing objects: 100% (316/316), done. remote: Total 558 (delta 217), reused 558 (delta 217), pack-reused 0 接收对象中: 100% (558/558), 5.08 MiB | 556.00 KiB/s, 完成. 处理 delta 中: 100% (217/217), 完成. root@localhost opt]# ls tomcat-java-demo [root@localhost opt]# ls tomcat-java-demo/ db deploy.yaml Dockerfile jenkinsfile LICENSE pom.xml README.md src
打包文件
[root@localhost opt]# yum -y install maven [root@localhost opt]# cd tomcat-java-demo/ [root@localhost tomcat-java-demo]# mvn clean package [INFO] Packaging webapp [INFO] Assembling webapp [ly-simple-tomcat] in [/opt/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT] [INFO] Processing war project [INFO] Webapp assembled in [170 msecs] [INFO] Building war: /opt/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.630 s [INFO] Finished at: 2021-10-19T04:16:56-04:00 [INFO] ------------------------------------------------------------------------ [root@localhost tomcat-java-demo]# ls db deploy.yaml Dockerfile jenkinsfile LICENSE pom.xml README.md src target [root@localhost tomcat-java-demo]# ls target/ classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status ## 更改名称 [root@localhost tomcat-java-demo]# mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war [root@localhost target]# ls classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-status generated-sources maven-archiver myapp.war
将包文件传送过去
[root@localhost tomcat-java-demo]# scp target/myapp.war root@192.168.101.120:/usr/local/tomcat/webapps myapp.war 100% 17MB 143.2MB/s 00:00自动部署Java项目
查看打的包
[root@localhost tomcat-java-demo]# cd /root/.jenkins/workspace/ [root@localhost workspace]# ls Java Java@2 Java@2@tmp Java@tmp [root@localhost workspace]# ls Java db deploy.yaml Dockerfile jenkinsfile LICENSE pom.xml README.md src target [root@localhost workspace]# ls Java/target/ classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status
在tomcat主机上创建备份
[root@localhost webapps]# mkdir /opt/backup
配置流水线脚本
pipeline {
agent any
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git 'https://gitee.com/forgotten/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.101.120 'tar -Jcf /opt/backup/myapp-$(data +%Y%m%d).tar.xz /usr/local/tomcat/webapps/myapp'"
sh "scp target/myapp.war root@192.168.101.120:/usr/local/tomcat/webapps"
sh "/usr/local/tomcat/bin/configtest.sh stop;sleep 3"
sh "/usr/local/tomcat/bin/configtest.sh start"
}
}
}
}
使用IP访问测试



