jenkins发布java项目
过程参考发布vue项目。https://www.cnblogs.com/jxd283465/p/11543431.html 大同小异。
vue建立的是Freestyle project,构建环境选择node
java建立的是maven project,构建环境使用maven
1。配置全局工具中maven
maven及maven私服安装参考:https://www.cnblogs.com/jxd283465/p/11548593.html
配置maven的配置文件
配置jdk安装路径
配置maven安装路径
2。新建maven项目
3。配置项目描述、git参数
4。配置源码管理git
如果使用sonar插件一定要配置Name
Branch Specifier为上方参数化构建的name,$表示调用参数
5。配置触发器
当提交代码到gitlab时,自动触发jenkins自动发布
gitlab webhook配置
6。配置构建环境
7。配置启动shell
勾选 “Run only if build succeeds”,当项目构建成功执行shell
cd /home/jenkins/.jenkins/workspace/MingByteSiteApi
bash /home/jenkins/jenkins.sh 192.168.8.10:5000/mingbytesiteapi MingByteSiteApi
mvn package -DskipTests
mvn dockerfile:build
echo '================开始推送镜像================'
sudo docker push 192.168.8.10:5000/mingbytesiteapi:latest #推送镜像,镜像文件已经在前面的mvn步骤打好了
echo '================结束推送镜像================'
sudo docker run -d --name MingByteSiteApi -p:8089:8089 192.168.8.10:5000/mingbytesiteapi
echo "finished!"
jenkins.sh
t=`sudo docker ps | grep $1|awk '{print $1}'|sed 's/%//g'`;
b=``;
if [ $t ];
then
sudo docker stop $t
echo "停止容器成功"
sudo docker rm $t
echo "删除容器成功"
else
echo "首次部署";
fi
tagnum=`git tag | wc -l`;
tag=(`git tag`)
a=0;
echo $tagnum
until [ $tagnum -lt 3 ]
do
echo $a 删除tag:${tag[$a]}
git tag -d ${tag[$a]}
git push $2 :refs/tags/${tag[$a]}
a=`expr $a + 1`
tagnum=`expr $tagnum - 1`
done
8。集成sonar代码审查
整合sonar代码审查参考:https://www.cnblogs.com/jxd283465/p/11548590.html
9。整合tag打包备份、整合邮件提醒
整合tag备份参考:https://www.cnblogs.com/jxd283465/p/11548589.html
整合邮件提醒参考:https://www.cnblogs.com/jxd283465/p/11548580.html