java程序发布步骤 1.拉取代码并打包 2.备份原程序 3.拷贝新程序到服务器的webapps目录中,停一会修改配置 4.重启tomcat 5.验证
两台主机,一台jenkins,另一台tomcat
//启动两台 [root@jenkins ~]# /usr/local/jenkins/bin/startup.sh Using CATALINA_base: /usr/local/jenkins Using CATALINA_HOME: /usr/local/jenkins Using CATALINA_TMPDIR: /usr/local/jenkins/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started. [root@jenkins ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:* LISTEN 0 100 *:8080 *:* LISTEN 0 128 [::]:22 [::]:*
手动部署版
//拉取代码需要用到git命令下载git [root@jenkins ~]# yum -y install git [root@jenkins ~]# cd /opt/ [root@jenkins 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 | 212.00 KiB/s, 完成. 处理 delta 中: 100% (217/217), 完成. [root@jenkins opt]# ls tomcat-java-demo //下载打包工具maven [root@jenkins tomcat-java-demo]# yum -y install maven [root@jenkins tomcat-java-demo]# mvn clean package //target里面是打包好的 [root@jenkins tomcat-java-demo]# ls db deploy.yaml Dockerfile jenkinsfile LICENSE pom.xml README.md src target [root@jenkins 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@jenkins tomcat-java-demo]# mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war [root@jenkins tomcat-java-demo]# ls target/ classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-status generated-sources maven-archiver myapp.war //因为要把包传到server端,所以要做免密登录,在Jenkins生成公钥传给server [root@jenkins tomcat-java-demo]# ssh-keygen -t rsa [root@jenkins ~]# ssh-copy-id root@192.168.47.163 [root@jenkins tomcat-java-demo]# scp target/myapp.war root@192.168.47.163:/usr/local/tomcat/webapps myapp.war 100% 17MB 49.5MB/s 00:00 //查看 [root@server tomcat]# pwd /usr/local/tomcat [root@server tomcat]# ls webapps/ docs examples host-manager manager ROOT [root@server tomcat]# ls webapps/ docs examples host-manager manager myapp myapp.war ROOT
自动版:
//进行第二步备份得像脚本一样,创建一个目录存放备份 //以下是手动备份 [root@server webapps]# mkdir /opt/backup [root@localhost demo]# ssh root@192.168.47.163 'tar -Jcf /opt/backup/myapp-$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp.war'
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('publicsh'){
steps{
sh "ssh root@192.168.47.163 tar -Jcf /opt/backup/myapp-$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp.war"
sh "scp target/myapp.war/ root@192.168.47.163:/usr/local/tomcat/webapps/"
sh "ssh root@192.168.47.163 '/usr/local/tomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start' "
}
}
}
}



