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

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

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

前言

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

示例演示

項(xiàng)目層級(jí)如下

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

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

1、在maven項(xiàng)目的父級(jí)pom設(shè)置變量,形如下

 <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、驗(yàn)證

從截圖,可以看出達(dá)到預(yù)期的效果

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

1、在maven項(xiàng)目的父級(jí)pom設(shè)置變量,并添加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默認(rèn)為dev

4、驗(yàn)證

從截圖,可以看出達(dá)到預(yù)期的效果

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

注:使用該命令,項(xiàng)目無需做任何變動(dòng)。

直接執(zhí)行命令

mvn versions:set -DnewVersion=1.0-dev

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

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

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

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

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

mvn clean package/deploy -DskipTests

從截圖,可以看出達(dá)到預(yù)期的效果

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

mvn versions:revert

進(jìn)行回退。不過能成功執(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ù)介紹

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

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

總結(jié)

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

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

相關(guān)文章

  • 項(xiàng)目總結(jié)之HttpURLConnection的disconnect的問題

    項(xiàng)目總結(jié)之HttpURLConnection的disconnect的問題

    這篇文章主要介紹了項(xiàng)目總結(jié)之HttpURLConnection的disconnect的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 使用JAVA8 filter對List多條件篩選的實(shí)現(xiàn)

    使用JAVA8 filter對List多條件篩選的實(shí)現(xiàn)

    這篇文章主要介紹了使用JAVA8 filter對List多條件篩選的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java針對封裝數(shù)組的簡單復(fù)雜度分析方法

    Java針對封裝數(shù)組的簡單復(fù)雜度分析方法

    這篇文章主要介紹了Java針對封裝數(shù)組的簡單復(fù)雜度分析方法,簡單講述了java封裝數(shù)組時(shí)間復(fù)雜度分析的原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • JAVA String轉(zhuǎn)化成java.sql.date和java.sql.time方法示例

    JAVA String轉(zhuǎn)化成java.sql.date和java.sql.time方法示例

    這篇文章主要給大家分享了關(guān)于JAVA String轉(zhuǎn)化成java.sql.date和java.sql.time的方法,文中給出了詳細(xì)的示例代碼,相信對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • 深入解讀MVC模式和三層架構(gòu)

    深入解讀MVC模式和三層架構(gòu)

    這篇文章主要介紹了深入解讀MVC模式和三層架構(gòu),三層架構(gòu)就是為了符合“高內(nèi)聚,低耦合”思想,把各個(gè)功能模塊劃分為表示層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)的三層架構(gòu),各層之間采用接口相互訪問,需要的朋友可以參考下
    2023-04-04
  • Spring boot動(dòng)態(tài)修改日志級(jí)別的方法

    Spring boot動(dòng)態(tài)修改日志級(jí)別的方法

    我們經(jīng)常會(huì)遇到業(yè)務(wù)想看debug日志的問題,但是debug日志頻繁打印會(huì)對日志查看有影響,且日志多對系統(tǒng)也會(huì)有一定的壓力,因此,如果可以在需要的時(shí)候動(dòng)態(tài)臨時(shí)調(diào)整下日志的級(jí)別則是比較完美的,spring boot已經(jīng)支持這種功能,需要的朋友可以參考下
    2022-12-12
  • Java設(shè)計(jì)模式之工廠模式(Factory模式)介紹

    Java設(shè)計(jì)模式之工廠模式(Factory模式)介紹

    這篇文章主要介紹了Java設(shè)計(jì)模式之工廠模式(Factory模式)介紹,本文講解了為何使用工廠模式、工廠方法、抽象工廠、Java工廠模式舉例等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • Springboot實(shí)現(xiàn)多線程及線程池監(jiān)控

    Springboot實(shí)現(xiàn)多線程及線程池監(jiān)控

    線程池的監(jiān)控很重要,本文就來介紹一下Springboot實(shí)現(xiàn)多線程及線程池監(jiān)控,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • 解決jackson反序列化失敗InvalidFormatException:Can not deserialize value of type java.util.Date

    解決jackson反序列化失敗InvalidFormatException:Can not dese

    這篇文章主要介紹了解決jackson反序列化失敗InvalidFormatException:Can not deserialize value of type java.util.Date問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片

    利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片

    這篇文章主要為大家詳細(xì)介紹了利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評論