jenkins持续集成springboot
1、可以配置项目标签
PS:这里Default Value值修改为master
2、代码地址,这里并没有拉取制定标签的代码,而是拉取了最新版本代码,如果要拉取指定标签代码需要把*/master修改成$version_tag。
3、Pre Steps与Build,通过Pre Steps修改pom.xml的版本,一次构建一个版本,版本规则自定义。
1 2 3 4 5 | # 更新pom依赖版本号 version=`awk '/< version >[^<]+<\/version>/{gsub(/< version >|<\/version>/,"",$1);print $1;exit;}' pom.xml` # sed 格式:0.0.1-SNAPSHOT 使用正则分组 newVersion=`echo $version | sed 's/\(.*\..*\.\).*\(-.*\)/\1'$BUILD_NUMBER'\2/'` mvn versions:set -DnewVersion=$newVersion versions:commit |
上面是直接使用BUILD_NUMBER变量,并不符合我们的实际要求,正常逻辑是每次读取pom.xml版本号,然后版本号加1,之后再改写pom.xml的版本号(下面示例版本规则是 1.0.3)
1 2 3 4 5 6 | # 更新pom依赖版本号 version=`awk '/< version >[^<]+<\/version>/{gsub(/< version >|<\/version>/,"",$1);print $1;exit;}' pom.xml` versionLast=`echo $version | sed 's/.*\..*\.\(.*\)/\1/'` let versionLast++ newVersion=`echo $version | sed 's/\(.*\..*\.\).*/\1'$versionLast'/'` mvn versions:set -DnewVersion=$newVersion versions:commit< br >< br >#eval sed -i '0,/$version/s//$newVersion/' pom.xml |
4、运行spring boot项目
1 2 3 4 5 6 7 8 9 10 | echo "Stopping SpringBoot Application" version=`awk '/< version >[^<]+<\/version>/{gsub(/< version >|<\/version>/,"",$1);print $1;exit;}' pom.xml` newVersion=`echo $version | sed 's/\(.*\..*\.\).*\(-.*\)/\1'$BUILD_NUMBER'\2/'` pid=`ps -ef | grep osp-ethscan.jar | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then kill -9 $pid fi cp -f /root/.jenkins/jobs/etherscan/workspace/target/osp-ethscan-$newVersion.jar /opt/test/osp-ethscan.jar BUILD_ID=dontKillMe nohup java -jar /opt/test/osp-ethscan.jar > /opt/test/out.log 2>&1 & |
版本控制标签:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@10 1.0.7]# cat /home/jenkinsShell/jenkins_Pre_Steps_ExecuteShell.sh #!/bin/sh echo "=========================== start update version =========================" cd $1 # 将变更的内容提交到git仓库 git pull origin master version=`awk '/< version >[^<]+<\/version>/{gsub(/< version >|<\/version>/,"",$1);print $1;exit;}' pom.xml` echo $version git add pom.xml git commit -m "jenkens update pom version" git tag $version -m "jenkens update pom version" git push origin $version echo "=========================== end update version ==========================" |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2018-06-14 (转)以太坊 钱包 转账 查询指定代币余额
2016-06-14 JavaScript基础总结三部曲之一
2014-06-14 poj1753Flip Game(dfs)