Jenkins发布Java项目
发布java项目的步骤:
- 拉取代码并打包,mvn clean package
- 备份目标服务器上已有的要发布项目
- 将包传到目标服务器的webapss目录中,需做免密登录
- 重启目标服务器的tomcat服务
- 修改项目的配置
- 重启目标服务器的tomcat服务
部署环境
项目要求:
两台主机上分别安装jenkins,tomcat
环境说明:
| 系统平台 | IP | 需要安装的服务 |
|---|---|---|
| rhel-8.2 | 192.168.170.132 | Jenkins |
| rhel-8.2 | 192.168.170.129 | Tomcat |
tomcat部署
[root@hostlocal ~]# yum install java-17-openjdk* -y
//下载tomcat并解压
[root@localhost src]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz
[root@hostlocal src]# tar xf apache-tomcat-9.0.65.tar.gz -C /usr/local/
[root@hostlocal local]# mv apache-tomcat-9.0.65/ tomcat
//使用service控制tomcat
[root@localhost ~]# cd /usr/lib/systemd/system
[root@localhost system]# cp sshd.service tomcat.service
[root@localhost system]# vim tomcat.service
[root@localhost system]# cat tomcat.service
[Unit]
Description=Tomcat server daemon
After=network.target sshd-keygen.target
[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/catalina.sh start
ExecStop=/usr/local/tomcat/bin/catalina.sh stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@localhost system]# systemctl daemon-reload
[root@localhost system]# systemctl enable --now tomcat.service
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service → /usr/lib/systemd/system/tomcat.service.
[root@hostlocal system]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
LISTEN 0 32 192.168.122.1:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 5 [::1]:631 [::]:*
LISTEN 0 128 *:443 *:*
//两台主机做好免密登录
[root@localhost ~]# ssh-keygen -t rsa
[root@localhost ~]# ssh-copy-id root@192.168.170.132
root@192.168.170.132's password:
//安装打包软件
[root@localhost ~]# yum -y install git maven




生成拉取代码的脚本


git 'https://gitee.com/wukongcrm/72crm-java.git'
编写流水线脚本
pipeline {
agent any
stages {
stage("pull code"){
steps {
git 'https://gitee.com/wukongcrm/72crm-java.git'
}
}
}
}
编写完后测试


命令行内查看
[root@hostlocal ~]# cd /root/.jenkins/workspace/test
[root@hostlocal test]# ls
72crm.bat 72crm.sh Dockerfile docs LICENSE.txt package.xml pom.xml README.md src target ux
打包
编写打包脚本
pipeline {
agent any
stages {
stage("pull code"){
steps {
git 'https://gitee.com/wukongcrm/72crm-java.git'
}
}
stage("make pkg"){
steps {
sh """
mvn clean package -Dmaven.test.skip=true
"""
}
}
}
}
命令行查看项目test目录
[root@localhost test]# cd target/ //target为打包后生成的目录
[root@localhost target]# ls
classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver
generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status
编写输出脚本
pipeline {
agent any
stages {
stage("pull code"){
steps {
git 'https://gitee.com/wukongcrm/72crm-java.git'
}
}
stage("make pkg"){
steps {
sh """
mvn clean package -Dmaven.test.skip=true
"""
}
}
stage("publish"){
steps {
sh """
cd /root/.jenkins/workspace/test/target/
scp ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.170.129:/usr/local/tomcat/webapps/
ssh root@192.168.170.129 '/usr/local/tomcat/bin/catalina.sh stop && /usr//local/tomcat/bin/catalina.sh start'
"""
}
}
}
}


浙公网安备 33010602011771号