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报错
报错信息
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
这是我的路径
/usr/local/jdk1.8.0_291/bin/java
再次启动时结果,又有一个警告
报错信息
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、全局工具配置
2、插件配置快速仓库
http://mirror.esuni.jp/jenkins/updates/update-center.json
3、安装gitee和Maven Integration插件与全局凭证
4、系统配置
5、新增任务
名字取决于在/var/lib/jenkins/workspace该目录下的名字,例如test内存放的是gitee指定仓库内的文件(后面的操作全与gitee仓库名无关)
6、Gitee的webHooks配置
进入gitee 中,打到项目的WebHooks
7、配置maven命令
cleran清除后install打包命令
clean install -Dmaven.test.skip=true
8、编写shell命令
#!/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安装与配置环境
两个都解压在服务器的/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
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
3、修改本地储存仓库
<localRepository>usr/home/sb</localRepository>
maven清除打包
#!/bin/bash
cd arcsoft_Administration
mvn clean package -Dmaven.test.skip=true