Jenkins下载链接:Jenkins| 清华大学开源软件镜像站
1. 基础环境搭建#
1.1 上传基础环境包#
将Jenkins压缩包上传到服务器opt目录中,解压并且给予可执行权限:
chmod -R +777 jenkins
1.2 文件说明#
-
benewake:Jenkins自动打包后项目的存储位置
-
environment:基础环境
-
Maven:我提供的maven包中有已经编译过的金蝶和顺丰的jar包,并且已经配置阿里云镜像和默认的repo路径
-
Jdk:Jenkins运行版本是jdk17。改包下面的其他的JDK版本为项目运行所需要的对应版本
-
-
lib:存放的金蝶和顺丰的jar包,后续如果引入第三方包也放在这里
-
shell
-
killp.sh : 关闭指定端口的进程。例如:
./killp.sh 9527 -
mvnInstall.sh:jar包编译为maven到本地
-
startFim.sh:启动fim项目
-
-
war:存放Jenkins的war包
1.3 配置环境变量#
修改/etc/profile文件,在文件末尾添加下面的语句
export MAVEN_HOME=/opt/jenkins/environment/apache-maven-3.9.7export PATH:$PATH:$MAVEN_HOME/bin
export JAVA_HOME=/opt/jenkins/environment/jdk-17.0.11export PATH:$PATH:$JAVA_HOME/binexport CLASS_PATH=$CLASS_PATH:$JAVA_HOME/lib- 保存后执行
source /etc/profile命令重新加载配置,然后测试是否生效:

1.4 安装Git和net-tools#
执行yum install git 和 yum install net-tools
1.5 开放Jenkins端口号(8848端口)#
- 使用iptables开放端口:
# 添加一个规则来允许端口号8080的入站流量sudo iptables -I INPUT -p tcp --dport 8848 -j ACCEPT
# 保存规则sudo iptables-save
# 重启iptables服务(根据你的Linux发行版可能不需要)sudo service iptables restart- 使用的是firewalld开放端口:
# 添加一个允许端口号8080的规则sudo firewall-cmd --permanent --add-port=8848/tcp
# 重新加载防火墙规则sudo firewall-cmd --reload注意:更改防火墙规则需要重启服务,以确保新的规则生效。
2. Jenkins配置#
2.1 启动Jenkins#
进入Jenkins文件目录下以端口号8848启动Jenkins.war包
cd /opt/jenkins/warnohup java -jar jenkins.war --httpPort=8848 &如果遇到错误:Fontconfig head is null, check your fonts or fonts configuration说明使用的OenJDK不支持awt包下的字体
yum install fontconfig- 首次启动的话会生成一个密码,如下所示,这个是初始化登录的时候输入的内容,没有记住也没有关系,可以从 /root/.jenkins/secrets/initialAdminPassword 文件查看
***************************************************************************************************************************************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.Please use the following password to proceed to installation:
7f919b426ce34cf99575ec9de758ff06
This may also be found at: /root/.jenkins/secrets/initialAdminPassword
***************************************************************************************************************************************************************************************2.2 Jenkins初始化#
网页输入192.168.213.102:8848 / your_ip:8848,会跳转到Jenkins登录页面,密码就是上面说的密码。然后根据图示进行操作。




如果在安装插件的步骤出现问题,请仔细检查自己的JDK版本是否是高版本的JDK,因为Jenkins已经不再支持JDK8了,很多插件也进行了升级。
2.3 配置阿里镜像源#
https://mirrors.aliyun.com/jenkins/updates/update-center.json

2.4 安装Gitee插件#
- 找到插件管理,搜索gitee,然后点击安装

- 配置Gitee全局凭证
依次进入 Manage Jenkins -> Credentials -> System -> Global credentials (unrestricted)


访问提示的gitee令牌获取链接,根据链接生成一个令牌,将令牌填入选项框中。ID和描述不用填写
2.5 安装JDK Parameter插件#
因为运行Jenkins所需要的JDK版本最低是11,而我们的项目使用的JDK版本是8,所以我们需要安装一个JDK 的插件,来指定我们运行项目的JDK,需要安装的插件如下图所示:

2.6 安装Maven Integration插件#

2.7 配置Jenkins Tools环境#
2.7.1 maven配置#
- 默认的setting配置为我们服务器maven的setting.xml文件地址:
/opt/jenkins/environment/apache-maven-3.9.7/conf/settings.xml

2.7.2 JDK安装#
- 点击新增JDK,然后配置JDK1.8和JDK17的JAVA_HOME

3. 配置fim自动化构建#
创建一个自由风格的项目,命名为fim

3.1 General配置#
勾选:This project is parameterized,然后配置该项目启动所需的JDK为1.8

3.2 源码管理#
点击Git选项,Repository URL 栏填写项目的gitee地址,然后会报出如下图的红色错误,点击添加凭证按钮,凭证里类型是用户名密码类型,然后填写自己的gitee的用户名和密码,保存即可消除红色


3.3 构建触发器#
我们可以勾选 Gitee webhook 触发构建 ,打开Gitee仓库管理,选择WebHooks,添加一个WebHooks,然后输入链接和Jenkins生成的密码





ps:URL需要公网链接,虚拟机地址不行,这里只是演示
3.4 Build Steps#
3.4.1 Invoke top-level Maven targets#
选择 Invoke top-level Maven targets ,然后配置maven执行clean package 如果想要跳过测试可以加上参数
-Dmaven.test.skip=true
clean package -Dmaven.test.skip=true

3.4.2 Execute shell#
执行shell命令,首先关闭端口号9527的进程(这里的端口号配置fim启动端口,根据自己的情况变化),然后再执行fim启动脚本
#!/bin/bashcd /opt/jenkins/shell./killp.sh 9527nohup ./startFim.sh &
4. 开始构建#
点击Build with Parameters开始构建项目,等待构建完毕

然后我们去linux系统查看是否正在运行

5. Q&A#
5.1 执行脚本:坏的解释器#
问题分析:文件从 Windows 上传到 Linux 通过 unzip 解压。会导致下载到 Windows系统下文件经过编辑后,文件每一行结尾是 \n\r,上传到 Linux时要去掉多出的 \r。 可以通过如下命令去掉多余的 \r
5.2 找不到金蝶和顺丰的包#
- 问题详情:
[ERROR] Failed to execute goal on project fim: Could not resolve dependencies for project com.benewake.saleordersystem:fim:jar:2.0.0-SNAPSHOT: The following artifacts could not be resolved: com.benewake:k3cloud-webapi-sdk:jar:8.0.5 (absent), com.benewake:sf-sdk:jar:2.1.7 (absent): Could not find artifact com.benewake:k3cloud-webapi-sdk:jar:8.0.5 in alimaven (http://maven.aliyun.com/nexus/content/groups/public/) -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.- 解决办法:执行shell下的 mvnInstall.sh
/opt/jenkins/shell/./mvnInstall.sh