Jenkins是一款使用Java开发的、开源的,项目持续集成工具。

1.安装前环境

1.1.1 JDK安装

JDK1.8 提取码:t4c3
(1)解压

tar -zxvf  jdk-8u231-linux-x64.tar.gz

(2)配置环境变量

# 编辑profile文件
vim /etc/profile

添加内容如下:

export JAVA_HOME=/java/jdk8
export CLASSPATH=.:$JAVA_HOME/lib/dt.:jar$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

注意:按照自己的实际java解压路径来填写。

1.1.2 Maven

Maven 提取码:98ut
(1)解压

tar -zxvf apache-maven-3.8.5-bin.tar.gz

(2)配置settings.xml文件

# 进入 解压后maven的conf文件夹(操作时根据自己实际的加压路径)
cd /maven/conf


# 编辑 settings.xml文件
vim setttings.xml


# 添加镜像 这样下载依赖(jar包)时会很快
<mirrors>
   <mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
  </mirror>
</mirrors>

注意:按照自己的实际maven解压路径来填写。

1.1.3 git

直接使用命令进行安装

yum install git

2.Jenkins安装

1.1 通过war安装Jenkins

Jenkins.war 提取码:wkjn
(1)启动Jenkins
因为我们在安装前环境中已经安装了JDK,所以直接运行Jenkin的War包即可:

nohup java -jar jenkins.war & #后台运行

(2)访问Jenkins
默认端口号为8080,在浏览器输入ip地址+8080端口即可:

jestClient springboot使用 jekins springboot_linux


根据页面提示去linux系统中对应的文件目录下找管理员密码。 (3)安装插件、管理用户、配置实例

jestClient springboot使用 jekins springboot_maven_02


这里选择安装推荐的插件,使用war包运行的情况下,不会出现安装推荐插件失败的情况。

jestClient springboot使用 jekins springboot_jenkins_03


jestClient springboot使用 jekins springboot_spring boot_04


到此通过war包的方式安装Jenkins已经完成。

需要特别注意:通过war包的方式安装Jenkins,Jenkins的workspace文件夹和其他文件都是在下面的目录下:

/root/.jenkins/

1.2 通过命令进行安装

(1)下载

wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.190.3-1.1.noarch.rpm

(2)安装

rpm -ivh jenkins-2.190.3-1.1.noarch.rpm

(3)修改配置
修改Jenkins的JDK路径为自己安装的JDK路径。命令如下:

cd /etc/init.d/
vim jenkins

jestClient springboot使用 jekins springboot_spring boot_05


(4)运行Jenkins 查看状态

systemctl start jenkins #运行
systemctl status jenkins #查看状态

显示下面的标识正在运行:

jestClient springboot使用 jekins springboot_linux_06


后续的步骤和运行war包的一致。

需要特别注意:通过命令行安装的Jenkins的配置文件和workspace文件夹都是在下面的目录下:

cd /var/lib/jenkins/

Jenkins的配置文件在:

/etc/sysconfig/jenkins

3.Jenkins安装可能遇到的问题

3.1 无法安装安装推荐的插件

(1)问题描述

通过wget命令行下载Jenkins并安装,会出现无法安装插件的问题:

Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed unable to find valid certification path to requested target

或者是:

There were errors checking the update sites: SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification

(2)问题原因

这是因为请求是SSL证书的问题。

(3)问题解决

进入Jenkins的JENKINS_HOME目录:

/var/lib/jenkins/

找到该目录中的hudson.model.UpdateCenter.xml:

jestClient springboot使用 jekins springboot_linux_07


修改成以下所示:

<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

返回上一级,找到updates文件夹,然后修改default.json文件,将文件中的所有

http://updates.jenkins-ci.org/download

替换成

https://mirrors.tuna.tsinghua.edu.cn/jenkins

http://www.google.com

替换成:

http://www.baidu.com

登陆Jenkins在系统管理 ->插件管理->高级,配置下站点:

jestClient springboot使用 jekins springboot_java_08

https://updates.jenkins.io/update-center.json

然后再去下载插件。

当然即使配置上面的东西,也会出现下载错误的插件,但是比较少,下面可以把失败的个别插件从Jenkinsc官网插件页面,下载后放到Jenkins中即可。例如:

jestClient springboot使用 jekins springboot_spring boot_09


搜索下载失败的插件:

jestClient springboot使用 jekins springboot_spring boot_10


选择对应的版本(有的版本可能不兼容Jenkins的版本需要升级Jenkins版本)

jestClient springboot使用 jekins springboot_jenkins_11


登陆Jenkins在系统管理 ->插件管理->高级中上传插件:

jestClient springboot使用 jekins springboot_maven_12

4. 配置一个Maven项目

下面我以放到Gitee上面的代码作为例子:

4.1 下载Gitee和Maven插件

登陆Jenkins系统管理 ->插件管理 这里我已安装过了,如果安装的话需要到 可选插件中搜索对应的插件名称进行安装。

jestClient springboot使用 jekins springboot_linux_13


jestClient springboot使用 jekins springboot_linux_14

4.2 创建Maven项目

新建任务

jestClient springboot使用 jekins springboot_spring boot_15

jestClient springboot使用 jekins springboot_maven_16

4.3 配置项目

4.3.1 全局工具配置

jestClient springboot使用 jekins springboot_java_17

(1)配置maven、JDK、git

jestClient springboot使用 jekins springboot_java_18


jestClient springboot使用 jekins springboot_maven_19

maven、JDK、git路径就是安装的路径。

4.3.2 系统配置

jestClient springboot使用 jekins springboot_linux_20


(1)Gitee配置

jestClient springboot使用 jekins springboot_java_21


那么如何获取Gitee的令牌呢?

登陆Gitee -> 设置 -> 私人令牌

jestClient springboot使用 jekins springboot_linux_22


jestClient springboot使用 jekins springboot_linux_23


jestClient springboot使用 jekins springboot_linux_24


然后提交。

jestClient springboot使用 jekins springboot_linux_25


复制令牌。

jestClient springboot使用 jekins springboot_spring boot_26


jestClient springboot使用 jekins springboot_jenkins_27


jestClient springboot使用 jekins springboot_maven_28

4.3.3 项目配置

(1)Gitee链接

此处选择在系统配置中配置的Gitee链接。

jestClient springboot使用 jekins springboot_jenkins_29


(2)源码管理

  • 仓库URL:就是Gitee上面你的仓库地址。
  • Credentials认证信息:填写的就是 上面配置的GiteeAPI令牌。
  • 分支:你需要Jenkins管理的分支是哪个。根据自己实际情况填写

    (3)构建触发器

    (4)构建环境

    (4)前置步骤(Pre Steps)

    (5)Build(重点)
    使用Maven来构建项目,命令是:
clean install -Dmaven.test.skip=true

jestClient springboot使用 jekins springboot_java_30


(5)Post Steps(重点)

添加 执行shell

jestClient springboot使用 jekins springboot_java_31


jestClient springboot使用 jekins springboot_spring boot_32

shell脚本解释:

cd /java/project/ # 进入存放项目的文件夹(自定义的)
sh stop.sh # 停止正在运行的旧版本项目 shell脚本
sh replace.sh # 替换编译后的jar包 shell脚本
#启动新编译打包的项目
BUILD_ID=dontKillMe nohup java -jar /java/project/编译后包的名称.jar &

stop.sh 和 replace.sh 内容:

#stop.sh
#找到正在运行旧项目的 编号
#然后停止
pid=`ps -ef | grep 编译后的jar包的名称 | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi
#replate.sh
#判断指定路径下的jar包是否存在
#如果存在,更名备份
#将Jenkins打包编译后的项目移动到指定的项目目录下
file="/java/project/编译后包的名称.jar"
if [ -f "$file" ]
then
   mv /java/project/编译后包的名称.jar /java/project/编译后包的名称.jar.`date +%Y%m%d%H%M%S`
fi
   mv /root/.jenkins/workspace/项目名称/target/编译后包的名称.jar /java/project/

(6)保存配置。

5.构建项目

jestClient springboot使用 jekins springboot_jenkins_33


查看构建日志:

![在这里插入图片描述](

jestClient springboot使用 jekins springboot_spring boot_34

jestClient springboot使用 jekins springboot_java_35

6. 总结

Jenkins构建项目并运行的流程如下:

jestClient springboot使用 jekins springboot_jenkins_36

  • 通过运行war包安装的Jenkins,编译后的包是在/root/.jenkins/workspace/下面。
  • 通过命令安装的Jenkins,编译后的包是在/var/lib/jenkins/workspace/下面