本文介绍 jenkins 何从 gitee 上 clone 项目,然后使用 maven 打包并后台启动。
1.Jenkins 介绍
Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
(以上介绍来源于百度百科)
其实通俗来说,Jenkins 就是一个自动化部署项目的工具,帮我省去重复的运维工作。
2. 环境准备
本文需要如下几个工具:
JDK
![](https://img-blog.csdnimg.cn/05aca194fb0b42cca63e380b5ebdbcc0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
Git
![](https://img-blog.csdnimg.cn/4d7572a36f2948de8d0cae8d6a7363ed.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
Maven
![](https://img-blog.csdnimg.cn/4acc0f9d8c24422d91a01570625cd158.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
以上三种就不在这里介绍安装了,这里我贴出我的环境变量配置仅供参考:
![](https://img-blog.csdnimg.cn/b315d06a057b467f8b976ce9e37aa85b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
我的 Jenkins 是使用如下方式安装:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.reposudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.keysudo yum install jenkins
启动
service jenkins start
然后访问 http://${ip}/8080,可以看到 jenkins 那个小老头,根据自行配置安装插件,其中密码在这里
安装插件,其中密码在这里
vi /var/lib/jenkins/secrets/initialAdminPassword
3.Jenkins 工具插件配置
3.1 插件配置
个人建议,Jenkins 第一次进入推荐安装的插件就默认安装就行,省的还需要后续自己安装,当然,如果自己安装的话需要 Maven 和 Git 插件。
3.2 工具配置
JDK
![](https://img-blog.csdnimg.cn/067ed93884d44c258795c20cadf7d13f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
Git
![](https://img-blog.csdnimg.cn/57ac681baae0473db4480e9e954e7240.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
Maven
![](https://img-blog.csdnimg.cn/079936faa1fd4d6e98575ac8a82a2b1f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
4. 配置项目
新建项目,选择构建自由风格的项目,给项目起个名字,然后点击 Ok
4.2 配置参数化构建过程
这里我用到了几个参数,因为可能有时需要提前准备好参数在进行构建,如下图:
![](https://img-blog.csdnimg.cn/e1165add43a542df9347262e7d1aafb8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
-
jar_path : 本意是准备项目打包后的 jar 位置,其实这里是 Jenkins 工作空间
-
spring_profile:这个是读取配置文件前缀,比如 dev,test,prod
-
jar_name:jar 包名称
-
project_name:项目名称
4.3 Git 配置
用 Git 进行将项目 Clone 下来,配置自己的用户密码,Repository URL 配置 git 地址(这里提供的地址是私密项目,项目没什么特别的,就是简单 SpringBoot 项目,不用尝试了,用自己项目就可以)
![](https://img-blog.csdnimg.cn/3f8c7a9d70dc41c5ae984b760a4e8413.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
4.4 配置 Build
mvn clean install -Dmaven.test.skip=trueecho $spring_profile $jar_path $jar_namecd
/usr/local
/shell/./stop.sh $jar_nameecho "Execute shell Finish"
./sta
rtup.sh
$spring_profile
$jar_path
$jar_name
$project_name
![](https://img-blog.csdnimg.cn/d5a7d8e366c045cfb83e9aac4a5c72f0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
在上面执行的 Shell 里面还用到了两个 Shell,分别是 stop.sh,实质就是找到 jar 执行的 pid,然后 kill,具体内容如下:
jar_name=
${1}
echo
"Stopping"
${jar_name}
pid=`ps -ef | grep
${jar_name}
| grep -v grep | awk
'{print $2}'
`
if
[ -n
"
$pid
"
]
then
echo
"kill -9 的pid:"
$pid
kill
-9
$pidfi
startup.sh 内容如下,具体可以根据情况修改:
spring_profile=
${1}
jar_path=
${2}
jar_name=
${3}
project_name=
${4}
cd
${jar_path}
/
${project_name}
/target/
echo
${jar_path}
/
${project_name}
/target/
echo
nohup java -jar
${jar_name}
&BUILD_ID=dontKillMe nohup java -jar
${jar_name}
--spring.profiles.active=
${spring_profile}
&
5 测试运行
点击运行后,如图所示,刚刚预配置的参数都可以看到并可以修改,这里我们用默认配置好的就可以。
![](https://img-blog.csdnimg.cn/514b8a6410b944ceb0e1aa27312b1414.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56yR5YKy5rGf5rmWMDAy,size_18,color_FFFFFF,t_70,g_se,x_16)
然后点击运行就可以,当时遇到了一个插曲,我的 Maven 是安装成功的,但是 Jenkins 内无法使用,报错 mvn:command not found,这里我解决的方式是将 mvn 命令也指向 / usr/bin/mvn,如下:
ln -s /usr/
local
/apache-maven-3.5.4/bin/mvn /usr/bin/mvn