Jenkins发布Java项目

本文介绍了如何通过Jenkins实现Java项目的自动化部署,涉及两台主机的设置,一台运行Jenkins,另一台作为Tomcat服务器。首先讲解了手动部署的步骤,然后详细阐述了如何配置Jenkins实现从构建到部署的全过程,从而提升持续集成和交付的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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' " 
            }
        }
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值