关于Maven Versions插件

时间:2014-06-11 14:01:22

标签: java eclipse maven build version

我正在尝试使用Maven Versions Plugin将所有子POM升级到父版本并执行父pom中所有子模块的构建.Pom文件看起来像这样

父POM

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.build.pom</groupId>
    <artifactId>basepom</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>

    <modules>
        <module>
            <module>../Common</module>
        <module>
    <modules>

    <!-- . . . -->
</project>

Child Pom

<parent>
    <artifactId>basepom</artifactId>
    <groupId>com.build.pom</groupId>
    <version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.child.common</groupId>
<artifactId>common</artifactId>
<packaging>jar</packaging>
<name>Common</name>
<description>Common Jar</description>

现在,如果我使用Eclipse中的命令在基础POM上运行Maven构建

mvn clean install 

如果我将basepom版本更新为2.0并使用版本插件命令,那么子模块正在构建正确

mvn clean -N versions:update-child-modules install

版本正在更新,但是子模块没有构建。只有基础pom才能构建。

我是否必须明确指定在某个阶段构建子模块?我错过了什么?。

1 个答案:

答案 0 :(得分:0)

不是手动设置父版本,而是可以像这样使用set-goal:

versions:set -DnewVersion=XXX -DgenerateBackupPoms=false install

这会更新父级和所有子级的版本,然后应该执行安装。


修改

要将参数和执行移动到pom,请尝试这样(未测试):

  <plugin>
   <artifactId>maven-versions-plugin</artifactId>
   <executions>
    <execution>
     <goals>
      <goal>set</goal>
     </goals>
     <configuration>
       <newVersion>XXX</newVersion>
       <generateBackupPoms>false</generateBackupPoms>
     </configuration>
    </execution>
   </executions>
 </plugin>

(如果版本没有改变,则应忽略设定的目标。)