溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

利用maven怎么動(dòng)態(tài)修改版本號(hào)

發(fā)布時(shí)間:2020-12-28 14:41:36 來(lái)源:億速云 閱讀:784 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

這篇文章給大家介紹利用maven怎么動(dòng)態(tài)修改版本號(hào),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

方案一: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ā)布到私有倉(cāng)庫(kù),則執(zhí)行

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

4、驗(yàn)證

利用maven怎么動(dòng)態(tài)修改版本號(hào)

利用maven怎么動(dòng)態(tài)修改版本號(hào)

從截圖,可以看出達(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ā)布到私有倉(cāng)庫(kù),則執(zhí)行

mvn clean deploy -Ptest -DskipTests

注:不指定-P默認(rèn)為dev

4、驗(yàn)證

利用maven怎么動(dòng)態(tài)修改版本號(hào)

利用maven怎么動(dòng)態(tài)修改版本號(hào)

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

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

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

直接執(zhí)行命令

mvn versions:set -DnewVersion=1.0-dev

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

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

利用maven怎么動(dòng)態(tài)修改版本號(hào)

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

利用maven怎么動(dòng)態(tài)修改版本號(hào)

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

利用maven怎么動(dòng)態(tài)修改版本號(hào)

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

mvn clean package/deploy -DskipTests

利用maven怎么動(dòng)態(tài)修改版本號(hào)

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

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

mvn versions:revert

進(jìn)行回退。不過(guò)能成功執(zhí)行該步驟的前提是沒(méi)有執(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ù)介紹

利用maven怎么動(dòng)態(tài)修改版本號(hào)

關(guān)于利用maven怎么動(dòng)態(tài)修改版本號(hào)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI