通过Jenkins发布Java项目

1. Java程序发布步骤:

  1. 拉取代码并打包
  2. 备份原程序(因为到当war包放在tomcat目录后他会自动解压)
  3. 拷贝新程序到服务器的web apps目录中,然后修改配置
  4. 重启tomcat服务
  5. 进行验证

2. 首先新建一个项目

给任务起一个名字,这个名字随意,再选择流水线点击确定。

这里有使用脚本的方式

这里使用hello world脚本的演示,点击保存并应用即可,它就会自动输出hello world

点击此处执行

点击任务名查看执行的状态

success表示任务执行成功,logs查看任务执行的结果

上面是演示的例子,下面讲一下该如何自动发布,自动发布的前提是手动发布。

3. 自动发布

环境说明

主机IP
Jenkins192.168.182.141
server192.168.182.142

3.1 安装配置环境

在Jenkins主机上部署Jenkins,server主机上部署tomcat
因为Jenkins需要tomcat。而tomcat需要安装Java环境
[root@jenkins ~]# yum -y install java-11-openjdk-devel.x86_64
下载tomcat
[root@jenkins ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/
解压tomcat到/usr/local目录下
[root@jenkins ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/
将apache-tomcat-9.0.54改为Jenkins
[root@jenkins local]# mv apache-tomcat-9.0.54/ tomcat

下载Jenkins,去官网下载:https://www.jenkins.io/zh/download/

[root@jenkins ~]# wget http://mirrors.jenkins.io/war-stable/2.303.2/jenkins.war

将下载好的war包移到当前目录
[root@jenkins webapps]# pwd
/usr/local/jenkins/webapps

在移到当前目录之前将除ROOT以外的所有文件及目录,因为这个tomcat是给Jenkins使用的所以只需要留ROOT目录
[root@jenkins webapps]# mv /root/jenkins.war ./
移到当前目录后war包会自动解压
[root@jenkins webapps]# rm -rf docs  examples  host-manager  manager

启动服务
[root@jenkins bin]# pwd
/usr/local/jenkins/bin
[root@jenkins bin]# ./catalina.sh start

在浏览器输入IP地址加端口号和jenkins
到这个文件里面找到免密并输入

选择插件安装,后面默认下一步即可。

server配置
这个是tomcat的官网:https://archive.apache.org/dist/tomcat/去下载即可

下载tomcat的tar包
[root@server ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/

解压tar包
[root@server ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/

为方便后面的操作将apache-tomcat-9.0.54改为tomcat
[root@server local]# mv apache-tomcat-9.0.54/ tomcat

因为tomca需要Java环境所以需要先安装java
[root@server ~]# yum -y install java-11-openjdk-devel.x86_64

配置tomcat的service文件,让其开机自启
[root@server system]# systemctl daemon-reload 
[root@server system]# systemctl enable --now tomcat.service 
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service → /usr/lib/systemd/system/tomcat.service.
[root@server system]# pwd
/usr/lib/systemd/system

[root@server system]# cat tomcat.service 
[Unit]
Description=tomcat server daemon
After=network.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@server system]# systemctl status tomcat.service 
● tomcat.service - tomcat server daemon
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor prese>
   Active: active (running) since Tue 2021-10-19 19:09:33 CST; 52s ago
  Process: 547856 ExecStart=/usr/local/tomcat/bin/catalina.sh start (code=exited>
 Main PID: 547868 (java)

3.2 拉取代码

// 配置好之后就执行第一步拉取代码
先下载git命令用来拉取代码
[root@jenkins ~]# yum -y install git
[root@jenkins ~]# git clone https://gitee.com/jinchenghe92/tomcat-java-demo.git

3.2.1 打包代码

先下载mvn命令
[root@jenkins tomcat-java-demo]# yum -y install maven
[root@jenkins tomcat-java-demo]# mvn clean package
打包之后他就会生成一个tar包
[root@jenkins tomcat-java-demo]# ls 
db           Dockerfile   LICENSE  README.md  target
deploy.yaml  jenkinsfile  pom.xml  src

[root@jenkins target]# pwd
/opt/tomcat-java-demo/target
[root@jenkins target]# mv ly-simple-tomcat-0.0.1-SNAPSHOT.war myapp.war   //改名字为了方便后面的操作

做免密登录
[root@jenkins target]#  ssh-keygen -t rsa  //一路回车即可
[root@jenkins target]# ssh-copy-id root@192.168.182.142
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.182.142's password:   //输入对端主机的密码

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.182.142'"
and check to make sure that only the key(s) you wanted were added.

再将包传到对端主机上
[root@jenkins target]# scp myapp.war root@192.168.182.142:/usr/local/tomcat/webapps/
传到此目录后会自动解压
[root@server webapps]# ls | grep myapp
myapp
myapp.war

看到此界面说发布成功

3.3 在Jenkins的web界面进行自动发布

选择GitHub

这个地方写在命令行拉代码的地址
image.png

这个地方就是我们在命令行的打包代码的命令中间的这个就是当出现错误时忽略

删除这一行

点击保存并应用

点击立即构建,绿色代表成功

打包成功之后将包放在下面的目录下

[root@jenkins ~]# cd /root/.jenkins/workspace/first/target/
[root@jenkins target]# ls
classes            ly-simple-tomcat-0.0.1-SNAPSHOT      maven-archiver
generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT.war  maven-status

4. 备份原程序

创建目录用来存放备份的包
[root@server webapps]# mkdir /opt/packages
[root@server webapps]# tar -Jcf /opt/packages/myapp-$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp

点击保存并应用

点击立即构建,看到绿色的说明成功

刷新一下界面能正常访问

5. 流水线的语法

可以通过这个git命令去拉取代码

如果使用的代码仓库时私有的需要写用户名和密码,这样为了安全

需要添加一个凭据

填写好用户名和密码后点击添加

选择刚才添加的凭据,再生成流水线

将刚才生成的流水线脚本的路径写到此处,即可拉取成功

拉取成功

在此处可以看到用户凭据,这个凭据和我们流水线生成的一样

依然能访问

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值