git上传时自动触发Jenkins项目构建实战

  • 一、安装Jenkins
  • 1、安装步骤
  • 2、启动jenkins报错
  • 3、卸载
  • 二、核心步骤
  • 1、全局工具配置
  • 2、插件配置快速仓库
  • 3、安装gitee和Maven Integration插件与全局凭证
  • 4、系统配置
  • 5、新增任务
  • 6、Gitee的webHooks配置
  • 7、配置maven命令
  • 8、编写shell命令
  • 三、其他
  • 1、JDK与Maven安装与配置环境
  • 2、修改Mavne添加阿里云私服地址
  • 3、修改本地储存仓库



一、安装Jenkins

1、安装步骤

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

修改配置文件账号我设置为root端口我设置为8040

vim /etc/sysconfig/jenkins

内容如下

JENKINS_USER="root"
JENKINS_PORT="8888"

启动Jenkins

systemctl start jenkins

2、启动jenkins报错

Jenkins构建触发器 git push git提交触发jenkins_maven


报错信息

Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "fjoumalctl -xe" for details.

解决方案
复制Java的环境变量地址, 编辑/etc/init.d/jenkins文件, 指定位置添加该地址, 后缀附上/bin/java

vim /etc/rc.d/init.d/jenkins

Jenkins构建触发器 git push git提交触发jenkins_git_02


这是我的路径

/usr/local/jdk1.8.0_291/bin/java

再次启动时结果,又有一个警告

Jenkins构建触发器 git push git提交触发jenkins_jenkins_03


报错信息

Warning: jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.

解决方案

systemctl daemon-reload

然后重启

systemctl restart jenkins

3、卸载

rpm -e jenkins #rpm卸载
rpm -ql jenkins #检查是否卸载成功
find / -iname jenkins | xargs -n 1000 rm -rf #彻底删除残留文件

二、核心步骤

1、全局工具配置

Jenkins构建触发器 git push git提交触发jenkins_jar_04

Jenkins构建触发器 git push git提交触发jenkins_jar_05


Jenkins构建触发器 git push git提交触发jenkins_maven_06

2、插件配置快速仓库

Jenkins构建触发器 git push git提交触发jenkins_jar_07

http://mirror.esuni.jp/jenkins/updates/update-center.json

3、安装gitee和Maven Integration插件与全局凭证

Jenkins构建触发器 git push git提交触发jenkins_maven_08

Jenkins构建触发器 git push git提交触发jenkins_jar_09

4、系统配置

Jenkins构建触发器 git push git提交触发jenkins_jenkins_10

5、新增任务

名字取决于在/var/lib/jenkins/workspace该目录下的名字,例如test内存放的是gitee指定仓库内的文件(后面的操作全与gitee仓库名无关)

Jenkins构建触发器 git push git提交触发jenkins_maven_11


Jenkins构建触发器 git push git提交触发jenkins_jenkins_12

Jenkins构建触发器 git push git提交触发jenkins_maven_13


Jenkins构建触发器 git push git提交触发jenkins_git_14

Jenkins构建触发器 git push git提交触发jenkins_maven_15

6、Gitee的webHooks配置

进入gitee 中,打到项目的WebHooks

Jenkins构建触发器 git push git提交触发jenkins_git_16


Jenkins构建触发器 git push git提交触发jenkins_maven_17

7、配置maven命令

cleran清除后install打包命令

Jenkins构建触发器 git push git提交触发jenkins_maven_18


clean install -Dmaven.test.skip=true

8、编写shell命令

Jenkins构建触发器 git push git提交触发jenkins_jar_19

#!/bin/bash
echo "Stopping   Application"
pid1=$(ps -ef|grep -i ace-demo.jar |grep -v "grep"|awk '{print $2}')
echo "获取pid成功"+$pid1
if [ -n "$pid1" ];
then         kill -9 $pid1
	echo '解除端口占用'
fi

echo "......delete mydemo1/ace-demo.jar ...."
rm -rf /home/service/mydemo1/ace-demo.jar

cp /var/lib/jenkins/workspace/test/target/ace-demo.jar /home/service/mydemo1/

sleep 3

echo "..........执行.........."
BUILD_ID=dontkillMe

echo "..........进入 /home/service/mydemo1 目录......"
cd  /home/service/mydemo1

echo "..........执行java -jar命令.........."
nohup java -jar ace-demo.jar > unionproject_log.file 2>&1 &   

sleep 20
#这边sleep只是为了让程序有充足时间打印日志,来判断程序是否启动成功
#最后面的"&"代表将该项目放入后台运行,否则jekins会一直卡在tomcat启动窗口而不往下继续
echo "......执行完成......"

三、其他

1、JDK与Maven安装与配置环境

JDK安装包链接

Jenkins构建触发器 git push git提交触发jenkins_git_20

maven安装包链接

Jenkins构建触发器 git push git提交触发jenkins_jenkins_21


两个都解压在服务器的/usr/local/下

tar -zxvf jdk-8u291-linux-x64.tar.gz -C /usr/local/
tar -zxvf apache-maven-3.8.1-bin.tar.gz -C /usr/local/

配置环境变量

vim /etc/profile

添加JDK与Maven环境变量

#JDK环境变量
JAVA_HOME=/usr/local/jdk1.8.0_291
export JAVA_HOME
CLASSPATH=.:$JAVA_HOME/lib
export CLASSPATH
PATH=$PATH:$JAVA_HOME/bin:$CLASSPATH
export PATH

#Maven环境变量
MAVEN_HOME=/usr/local/apache-maven-3.8.1
export MAVEN_HOME
PATH=$PATH:$MAVEN_HOME/bin
export PATH

重新编译配置

source /etc/profile

2、修改Mavne添加阿里云私服地址

cd /usr/local/apache-maven-3.8.1//conf/
 vim settings.xml

Jenkins构建触发器 git push git提交触发jenkins_maven_22

<mirror>
     <id>alimaven</id>
     <name>aliyun maven</name>
     <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
     <mirrorOf>central</mirrorOf>
   </mirror>

3、修改本地储存仓库

Jenkins构建触发器 git push git提交触发jenkins_maven_23

<localRepository>usr/home/sb</localRepository>

maven清除打包

#!/bin/bash
cd arcsoft_Administration
mvn clean package -Dmaven.test.skip=true