【问题标题】:Regarding Maven Versions Plugin关于 Maven 版本插件
【发布时间】:2014-08-01 15:05:46
【问题描述】:

我正在尝试使用 Maven 版本插件将所有子 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>

儿童绒球

<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 被构建。

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

【问题讨论】:

    标签: java eclipse maven build version


    【解决方案1】:

    您可以像这样使用 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>
    

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

    【讨论】:

    • Rob 我不想每次都更新 MVN 命令。我使用 jenkins 来构建战争,并且构建是由不同的团队处理的,他们对工件的版本一无所知。所以这对我不起作用。我正在 POM 文件中寻找用于版本升级的内容,而不是来自命令行。
    猜你喜欢
    • 1970-01-01
    • 2015-07-11
    • 2013-01-16
    • 1970-01-01
    • 2013-06-18
    • 2015-04-21
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多