出现的问题
jenkins构建maven项目时,一直卡在Parsing POMs,最后失败Failed to transfer Could not transfer artifact
在服务器上执行mvn命令,也一直卡在下载依赖
这可能是阿里云镜像的问题,将阿里云镜像换成华为镜像后,问题解决
<mirror>
<id>huaweicloud</id>
<name>huaweicloud maven</name>
<mirrorOf>*</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
<!--阿里云镜像-->
<!-- <mirror>
<id>aliyun-maven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven mirror</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror> -->
jenkins项目配置
参考https://cloud.tencent.com/developer/article/2024230
全局配置中设置gitee令牌
项目配置构建执行的命令,注意不要加mvn
clean package -Dmaven.test.skip=true
勾选webhook触发器,生成webhook密码
构建后执行shell,部署应用
#!/bin/bash
#输入Maven打包后的项目名称
app=hello-world-1.0
#项目移动的目的地址
path=/home/www/
echo this is app : $app
#若项目已启动,杀死旧进程
api_pid=`ps -ef | grep "$app.jar" | grep -v grep | awk '{print $2}'`
echo api_pid = $api_pid
if [ "$api_pid" != "" ]; then
echo kill api
kill -9 $api_pid
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
fi
#将jar包从jenkins工作空间中移动到指定路径下
mv /var/lib/jenkins/workspace/hello-world/target/$app.jar $path
cd $path
#防止进程被杀死
BUILD_ID=dontKillMe
#后台进程形式启动项目,日志文件为out.log
nohup java -jar $app.jar --server.port=8081 >> out.log 2>&1 &
echo $app start success
exit 0
push代码,测试触发器自动构建
测试部署