亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

maven如何動態(tài)統(tǒng)一修改版本號的方法步驟

 更新時間:2020年12月25日 12:02:10   作者:linyb極客之路  
這篇文章主要介紹了maven如何動態(tài)統(tǒng)一修改版本號的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

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

示例演示

項目層級如下

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

注:env.project.version為自定參數(shù)變量,env為dev或者test

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

 <groupId>org.example</groupId>
  <artifactId>demo-parent</artifactId>
  <packaging>pom</packaging>
  <version>${env.project.version}</version>

  <properties>
    <env.project.version>1.0-SNAPSHOT</env.project.version>
  </properties>

2、修改其子模塊pom

 <parent>
    <artifactId>demo-parent</artifactId>
    <groupId>org.example</groupId>
    <version>${env.project.version}</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>module-biz</artifactId>
 <parent>
    <artifactId>demo-parent</artifactId>
    <groupId>org.example</groupId>
    <version>${env.project.version}</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>module-api</artifactId>

3、執(zhí)行如下命令

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

如果要打包發(fā)布到私有倉庫,則執(zhí)行

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

4、驗證

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

方案二 maven的profile+自定參數(shù)變量

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

  <properties>
        <env.project.version>1.0-SNAPSHOT</env.project.version>
      </properties>
    <profiles>
    <profile>
      <id>dev</id>
      <properties>
        <env.project.version>1.0-dev</env.project.version>
      </properties>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>test</id>
      <properties>
        <env.project.version>1.0-test</env.project.version>
      </properties>
    </profile>
  </profiles>

2、修改其子模塊pom

 <parent>
    <artifactId>demo-parent</artifactId>
    <groupId>org.example</groupId>
    <version>${env.project.version}</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>module-biz</artifactId>
 <parent>
    <artifactId>demo-parent</artifactId>
    <groupId>org.example</groupId>
    <version>${env.project.version}</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>module-api</artifactId>

3、執(zhí)行如下命令

mvn clean package -Ptest -DskipTests

如果要打包發(fā)布到私有倉庫,則執(zhí)行

mvn clean deploy -Ptest -DskipTests

注:不指定-P默認為dev

4、驗證

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

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

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

直接執(zhí)行命令

mvn versions:set -DnewVersion=1.0-dev

如果要發(fā)布到私倉,此時要分兩次命令執(zhí)行,命令如下

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

此時查看idea,會發(fā)現(xiàn)

項目版本號已經(jīng)發(fā)生改變,且產(chǎn)生一個pom.xml.versionsBackup文件,這個文件是用來回退版本用的,其內(nèi)容如下

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

mvn clean package/deploy -DskipTests

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

如果有問題想回退版本,則執(zhí)行

mvn versions:revert

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

mvn versions:commit

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

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

 <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>2.8.1</version>
        <configuration>
          <generateBackupPoms>false</generateBackupPoms>
        </configuration>
      </plugin>
    </plugins>
  </build>

指定generateBackupPoms為false

參數(shù)介紹

其具體更多詳細介紹可以查看官網(wǎng)

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

總結

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

到此這篇關于maven如何動態(tài)統(tǒng)一修改版本號的方法步驟的文章就介紹到這了,更多相關maven動態(tài)統(tǒng)一修改版本號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java自定義類加載器如何實現(xiàn)類隔離

    java自定義類加載器如何實現(xiàn)類隔離

    這篇文章主要介紹了java自定義類加載器如何實現(xiàn)類隔離問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Mybatis SQL日志如何轉換為可執(zhí)行sql

    Mybatis SQL日志如何轉換為可執(zhí)行sql

    這篇文章主要介紹了Mybatis SQL日志如何轉換為可執(zhí)行sql問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • springboot+vue實現(xiàn)Minio文件存儲的示例代碼

    springboot+vue實現(xiàn)Minio文件存儲的示例代碼

    本文主要介紹了springboot+vue實現(xiàn)Minio文件存儲的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • Java?8中的Collectors?API介紹

    Java?8中的Collectors?API介紹

    這篇文章主要介紹了Java?8中的Collectors?API,Stream.collect()是Java?8的流API的終端方法之一。它允許我們對流實例中保存的數(shù)據(jù)元素執(zhí)行可變折疊操作,下文相關內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • Springboot?注解EqualsAndHashCode詳解

    Springboot?注解EqualsAndHashCode詳解

    注解@EqualsAndHashCode主要用于自動生成equals方法和hashCode方法,callSuper屬性為true時,生成的方法會包括父類字段,為false則只包含當前類字段,IDEA工具中有檢查提示并可自動修復相關代碼,確保注解正確使用,更多詳解可查閱相關文檔
    2024-10-10
  • 解決Mybatis中foreach嵌套使用if標簽對象取值的問題

    解決Mybatis中foreach嵌套使用if標簽對象取值的問題

    這篇文章主要介紹了解決Mybatis中foreach嵌套使用if標簽對象取值的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java獲取文件的類型和擴展名的實現(xiàn)方法

    Java獲取文件的類型和擴展名的實現(xiàn)方法

    這篇文章主要介紹了Java獲取文件的類型和擴展名的實現(xiàn)方法的相關資料,需要的朋友可以參考下
    2017-02-02
  • Java實現(xiàn)ftp上傳下載、刪除文件及在ftp服務器上傳文件夾的方法

    Java實現(xiàn)ftp上傳下載、刪除文件及在ftp服務器上傳文件夾的方法

    這篇文章主要介紹了Java實現(xiàn)ftp上傳下載、刪除文件及在ftp服務器上傳文件夾的方法,需要的朋友可以參考下
    2015-11-11
  • Java如何調(diào)用TSC打印機進行打印詳解

    Java如何調(diào)用TSC打印機進行打印詳解

    這篇文章主要給大家介紹了關于Java如何調(diào)用TSC打印機進行打印的相關資料,文中介紹了三種方法,分別是兩種后臺打印以及JS打印 ,三種方法都給出了詳細的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-07-07
  • jenkins+Maven從SVN上構建項目的方法

    jenkins+Maven從SVN上構建項目的方法

    這篇文章主要介紹了jenkins+Maven從SVN上構建項目,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09

最新評論