1

家长:

    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <version>1.0</version>
            <executions>
                <execution>
                    **<inherited>false</inherited>**
                    <goals>
                        <goal>create</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <format>${project.version}-b{0,number}</format>
                <items>
                    <item>buildNumber0</item>
                </items>
                <doCheck>false</doCheck>
                <doUpdate>false</doUpdate>
            </configuration>
        </plugin>
    </plugins>

<modules>
    <module>module1</module>
    <module>module2</module>
</modules>

在“mvn buildnumber:create”期间,每个模块都会生成 buildnumber。是否可以为子模块关闭它?换句话说,在 'mvn buildnumber:create' 期间,内部版本号应该只在父模块中生成一次。

我尝试了 set<phase>none</phase><skip>true</skip>in 子模块,但没有任何更改。

建议?

4

3 回答 3

2

这:在父模块上执行 Maven 插件目标,但不在子模块上

您可以添加<inherited>false</inherited>到插件配置以避免在子 POM 中继承:

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.0</version>
    <inherited>false</inherited>
    ...
  </plugin>
于 2015-11-18T16:50:18.290 回答
1

我会看看:

<pluginManagement>...</pluginManagement>

元素:http ://maven.apache.org/pom.html#Plugin_Management

我已经成功地通过插件管理部分在我的主/父/根 pom 文件中定义了我的插件,然后通过简单地指定组/工件组合来简单地在我的子 pom 文件中启用它们的行为。

在你的情况下,我会尝试以下...

在你的根 pom.xml 中(注意 <pluginManagement> 元素):

...
<build>
  ...
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
            <execution>
                <goals>
                    <goal>create</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <format>${project.version}-b{0,number}</format>
            <items>
                <item>buildNumber0</item>
            </items>
            <doCheck>false</doCheck>
            <doUpdate>false</doUpdate>
        </configuration>
      </plugin>
    </plugins>
  </pluginManagement>
...
</build>
...

然后只需通过(NO <pluginManagement> 元素)启用你的 module1(或 module2)pom.xml 中的行为:

<build>
  ...
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>buildnumber-maven-plugin</artifactId>
    <plugin>
  <plugins>
  ...
</build>
...

这都是凭记忆,试一试,如果不起作用,请告诉我。

于 2012-02-22T21:28:56.220 回答
-1

更新你的 pom 以使用插件的 1.3 版本,然后在每个子模块中配置插件为 true

于 2014-10-16T17:27:29.590 回答