2012-02-01 46 views
1

父级:关闭buildnumber-行家-插件子模块

<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:创建' 每个模块产生buildnumber。是否可以关闭子模块?换句话说,在'mvn buildnumber:create'内部版本号只能在父模块中生成一次。

我尝试设置<phase>none</phase><skip>true</skip>子模块但没有任何更改。

对此提出建议?

+0

对于你的多模块项目,你用它来最终建立一个单一的神器(如战争或耳朵)?如果是这样,您可以使用该单一模块的buildnumber插件而不是根目录。 – Michael 2012-02-01 22:24:12

+0

@Michael我可以,但无论如何buildnumber插件执行所有模块。我做错了什么? – Alex 2012-02-02 08:57:04

+0

你没有做错任何事。您在根pom中指定了一个构建指令,该指令在多模块pom中向下流动。你的孩子模块使用你父母的父母作为父母,这意味着他们也在那里做所有事情。所以你的代码完全按照你的要求去做。 – Michael 2012-02-02 17:55:43

回答

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> 
... 

,然后只需启用行为您的模块1(或模块2)通过pom.xml的(NO <pluginManagement>元素):

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

这是一个如果它不起作用,请告诉我。

0

更新你的POM中使用该插件的1.3版本,然后用真实

+0

它在2年前被问及,但无论如何感谢帮助! – Alex 2014-10-16 18:36:26

1

配置插件每个子模块在此:Execute Maven plugin goal on parent module, but not on children

您可以添加<inherited>false</inherited>到插件配置,以避免儿童的POM继承:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>buildnumber-maven-plugin</artifactId> 
    <version>1.0</version> 
    <inherited>false</inherited> 
    ... 
    </plugin>