1
前面我们学习了 Jenkins 的基本使用,接下我们将结合前面学习的内容来使用 Jenkins 部署 java 项目。其实基本上和前面的 html 例子差不多,只是多了 maven 编译的过程。
整体流程为:开发提交 java 源码到 gitlab 代码仓库 => jenkins 拉取代码并 maven 编译 => jenkins 部署编译生成的war包到web集群。
首先因为 jenkins 需要调用 maven 编译 java 项目代码生成war包,我们需要在 jenkins 服务器上安装 jdk 和 maven,同时还要在 jenkins 中配置jdk 和 maven 的家目录来让 jenkins 可以调用 maven 进行编译。
[root@jenkins ~]# yum install -y java maven
[root@jenkins ~]# mvn --version
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_275, vendor: Red Hat, Inc.
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
# maven换源
[root@jenkins ~]# vim /etc/maven/settings.xml # 修改一下配置,找到<mirrors>,将配置包含在<mirrors>中
<mirrors>
<mirror>
<id>AliMaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
打开系统管理全局 => 全局工具配置,配置 jdk 和 maven 的家目录。
此时我们在 gitlab 有个名为 web-java 的java项目代码仓库,开发将写好的代码上传到这个仓库,此时有两个版本分别是 v1.1 和 v1.2。注:点击下载 java项目代码
我们在 web 节点准备下 java 项目需要的环境,然后手动部署下 java 项目。
# maven编译java代码生成war包
[root@jenkins ~]# unzip web-java-master.zip
[root@jenkins ~]# cd web-java-master/
[root@jenkins web-java-master]# mvn package
[root@jenkins web-java-master]# scp -rp /root/web-java-master/target/hello-world-1.0.0.war 10.0.0.7:/root
# web节点手动部署
[root@web01 ~]# yum install -y tomcat java
[root@web01 webapps]# cd /var/lib/tomcat/webapps/ # tomcat默认的站点目录,代码必须放在这个目录的ROOT目录下
[root@web01 webapps]# mkdir hello-world
[root@web01 webapps]# unzip /root/hello-world-1.0.0.war -d ./hello-world/
[root@web01 webapps]# ln -s hello-world ROOT
[root@web01 webapps]# chown -R tomcat.tomcat ./*
[root@web01 webapps]# systemctl start tomcat
[root@web01 webapps]# curl 10.0.0.7:8080
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
<p>
Now the time is Wed Dec 30 08:46:17 EST 2020
</p>
<p>
You're from 10.0.0.7
</p>
</body>
创建一个名为 web-java 的项目,项目的类型我们不再选择自由风格,而是选择构建一个 maven 项目,这个选项我们是需要安装 “Maven Integration” 插件才能支持。
具体配置:
脚本:
[root@jenkins scripts]# vim web-java-deploy.sh
#!/bin/bash
# java项目部署
Date=date +%F-%H-%M
Web_Server="10.0.0.7"
Web_Name=web-${Date}-${git_version}
#1、推送war包到web集群节点
cd ${WORKSPACE} && scp -rp target/*.war ${Web_Server}:/opt/${Web_Name}.war
#2、解压部署
ssh -tt ${Web_Server} << EOF
cd /var/lib/tomcat/webapps/
mkdir ${Web_Name}
unzip /opt/${Web_Name}.war -d ./${Web_Name}
rm -rf ROOT && ln -s ${Web_Name} ROOT
chown -R tomcat.tomcat ./*
systemctl restart tomcat
exit
EOF
构建测试,选择版本v1.1:
构建成功,浏览器访问:
1