日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何动态修改uri_maven如何动态统一修改版本号

發布時間:2024/7/19 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何动态修改uri_maven如何动态统一修改版本号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方藍字關注我們!

01

前言

最近業務開發部門因為開發環境和測試環境共用一個maven私倉,導致他們開發環境的API包和測試環境的API包發生了覆蓋現象。于是他們向我們部門提出一個需求,希望我們能幫他們實現或者提供這么一個方案,就是項目自動化構建時,項目的版本號能跟著環境變更。比如是開發環境,則項目的API包版本就形如1.0-dev,如果是測試環境,則項目的API版本就形如1.0-test

02

示例演示

項目層級如下

方案一:mvn -Denv.project.version=1.0-env

注:?env.project.version為自定參數變量,env為dev或者test

01

在maven項目的父級pom設置變量,形如下

<groupId>org.examplegroupId>
????<artifactId>demo-parentartifactId>
????<packaging>pompackaging>
????<version>${env.project.version}version>

????<properties>
????????<env.project.version>1.0-SNAPSHOTenv.project.version>
????properties>

02

修改其子模塊pom

<parent>
????????<artifactId>demo-parentartifactId>
????????<groupId>org.examplegroupId>
????????<version>${env.project.version}version>
????parent>
????<modelVersion>4.0.0modelVersion>

????<artifactId>module-bizartifactId><parent>
????????<artifactId>demo-parentartifactId>
????????<groupId>org.examplegroupId>
????????<version>${env.project.version}version>
????parent>
????<modelVersion>4.0.0modelVersion>

????<artifactId>module-apiartifactId>

03

執行如下命令

mvn clean package -Denv.project.version=1.0-dev -DskipTests

如果要打包發布到私有倉庫,則執行

mvn clean deploy-Denv.project.version=1.0-dev -DskipTests

04

驗證

從截圖,可以看出達到預期的效果

方案二 maven的profile+自定參數變量

01

在maven項目的父級pom設置變量,并添加profile,形如下

<properties>
???????????<env.project.version>1.0-SNAPSHOTenv.project.version>
???????properties>
????<profiles>
????????<profile>
????????????<id>devid>
????????????<properties>
????????????????<env.project.version>1.0-devenv.project.version>
????????????properties>
????????????<activation>
????????????????<activeByDefault>trueactiveByDefault>
????????????activation>
????????profile>
????????<profile>
????????????<id>testid>
????????????<properties>
????????????????<env.project.version>1.0-testenv.project.version>
????????????properties>
????????profile>
????profiles>

02

修改其子模塊pom

<parent>
????????<artifactId>demo-parentartifactId>
????????<groupId>org.examplegroupId>
????????<version>${env.project.version}version>
????parent>
????<modelVersion>4.0.0modelVersion>

????<artifactId>module-bizartifactId><parent>
????????<artifactId>demo-parentartifactId>
????????<groupId>org.examplegroupId>
????????<version>${env.project.version}version>
????parent>
????<modelVersion>4.0.0modelVersion>

????<artifactId>module-apiartifactId>

03

執行如下命令

mvn clean package?-Ptest -DskipTests

如果要打包發布到私有倉庫,則執行

mvn?clean deploy -Ptest -DskipTests

注:不指定-P默認為dev

04

驗證

從截圖,可以看出達到預期的效果

方案三(推薦) mvn versions:set -DnewVersion=1.0-dev

注:?使用該命令,項目無需做任何變動。

直接執行命令

mvn versions:set?-DnewVersion=1.0-dev

如果要發布到私倉,此時要分兩次命令執行,命令如下

mvn versions:set?-DnewVersion=1.0-dev
mvn clean deploy -DskipTests

此時查看idea,會發現

項目版本號已經發生改變,且產生一個pom.xml.versionsBackup文件,這個文件是用來回退版本用的,其內容如下

如果確認沒問題,則可以執行你本來要操作的步驟,比如打包或者發布,形如下命令

mvn clean package/deploy -DskipTests

從截圖,可以看出達到預期的效果。如果有問題想回退版本,則執行

mvn versions:revert

進行回退。不過能成功執行該步驟的前提是沒有執行

mvn versions:commit

且存在pom.xml.versionsBackup文件文件

如果不想產生pom.xml.versionsBackup文件,則可以在父pom配置如下插件

<build>
????????<plugins>
????????????<plugin>
????????????????<groupId>org.codehaus.mojogroupId>
????????????????<artifactId>versions-maven-pluginartifactId>
????????????????<version>2.8.1version>
????????????????<configuration>
????????????????????<generateBackupPoms>falsegenerateBackupPoms>
????????????????configuration>
????????????plugin>
????????plugins>
????build>

指定generateBackupPoms為false

參數介紹

其具體更多詳細介紹可以查看官網

http://www.mojohaus.org/versions-maven-plugin/index.html

03

總結

從本示例的業務場景來看,通過自定義變量雖然也可以達到效果,但是如果子模塊一多的話,可能容易發生漏改現象。因此個人推薦使用mvn versions:set -DnewVersion=1.0-dev這種形式來進行修改

總結

以上是生活随笔為你收集整理的如何动态修改uri_maven如何动态统一修改版本号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。