手动部署Java项目
拉取代码
[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访问测试