项目批量修改版本号

一、问题背景  

             我们的maven项目大多数都是多模块项目,更新parent的版本号,发现子模块的版本号没有更新,需要手动一个一个去更新,这样太麻烦,还容易遗漏。

             有没有方便的方法呢?

二、解决办法

         1、使用插件,在parent的pom中增加配置.  主要是设置generateBackupPoms为false不备份pom 。如果需要备份,可以忽略

            

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

          

   2、 修改项目上层pom的版本号。执行命令  mvn -N versions:update-child-modules   ,会看到如下提示,即批量修改成功

[INFO] Module: **-dao [INFO]     parent was com.**s:**:1.0.13 [INFO]     updated to com.**s:**:1.0.14 [INFO] Module: **-manager [INFO]     parent was com.**s:**:1.0.13 [INFO]     updated to com.**s:**:1.0.14 [INFO] Module: **-service [INFO]     parent was com.**s:**:1.0.13 [INFO]     updated to com.**s:**:1.0.14 [INFO] Module: **-web [INFO]     parent was com.**s:**:1.0.13 [INFO]     updated to com.**s:**:1.0.14 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time:  2.013 s [INFO] Finished at: 2021-02-01T18:31:57+08:00 [INFO] ------------------------------------------------------------------------

     

   3、查看各子模块的父版本号已经修改

 

PS :1、子模块的版本号可以和父模块保持一致, 使用  ${parent.version}  这样保持项目使用一致的版本号  

        举个栗子    

<artifactId>**-web</artifactId>    <name>**-web</name>    <version>${parent.version}</version>     <description>controller</description>

 

   2、 因为我们的scm-xx-base 和scm-xx-api 为减少依赖,不依赖父项目,所以需要单独设置版本号,这里可以在两个模块中分别设置一个变量${project.version} ,使用即可,这个整个项目一次修改版本号只需要修改3个地方即可

         栗子

<groupId>com.**s</groupId>    <artifactId>**-base</artifactId>    <version>${project.version}</version>    <name>**-base</name>      <properties>        <java.version>1.8</java.version>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <project.version>1.0.13</project.version>    </properties>

 

  

上一篇:英语翻译——13


下一篇:[经验总结]error: no match for ‘operator>’ (operand types are ‘const *’ and ‘const *’) { return _