2014-04-18 57 views
1

我有了子模塊Maven項目轉,Maven的插件:如何禁用子模塊

/pom.xml 
/child1/pom.xml 
/child2.pom.xml 

當我做了一個「行家包」,它會創建一個/target/foo.jar。好。

當我做了一個「行家轉速:轉」,我的構建失敗,因爲當它建立孩子的之一,它說:

[ERROR] Failed to execute goal 
org.codehaus.mojo:rpm-maven-plugin:2.1-alpha-3:attached-rpm (default-cli) 
on project child1: Source location target/foo.jar does not exist 

我不希望孩子做的項目的轉。我只想讓父母轉動它的工件。

documentation說:

If this goal is run on a project with modules, 
it will run the "rpm:rpm" goal on each module, rather than packaging 
the modules into a single RPM. 

有沒有辦法來解決這個問題? 我不能在製作「mvn package」時創建rpm,因爲它不適用於mac,這是大多數人在這裏開發的:rpm只能在執行「mvn rpm:rpm」時創建,或類似的命令。

這裏是父POM:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>rpm-maven-plugin</artifactId> 
    <configuration> 
    <name>analytics-reporting</name> 
    <group>rpm</group> 
    <targetVendor>amazon</targetVendor> 
    <targetOS>Linux</targetOS> 
    <filemode>644</filemode> 
    <username>root</username> 
    <groupname>root</groupname> 
    <copyright>LGPL</copyright> 
    <version>${rpm.version}</version> 
    <release>${rpm.release}</release> 
    <mappings> 
     <mapping> 
     <directory>/opt/inin</directory> 
     <sources> 
      <source> 
      <location>target/analytics-reporting-engine.jar</location> 
      </source> 
     </sources> 
     </mapping> 
    </mappings> 
    </configuration> 
</plugin> 

這裏的孩子:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>rpm-maven-plugin</artifactId> 
    <executions> 
    <execution> 
     <phase>none</phase> 
    </execution> 
    </executions> 
</plugin> 
+0

看到這個答案:http://stackoverflow.com/a/14210506/1089062。把它放在你的孩子poms中。 – Boj

+0

感謝您的信息,但它沒有奏效。對我來說它應該是有效的,但它沒有,我不明白爲什麼。我會更新我的原始問題與父母和孩子POM。 – grayaii

回答

0

在插件的執行需要指定不繼承的插件,像這樣:

<executions> 
    <execution> 
    <inherited>false</inherited> 
    <id>attach-rpm</id> 
    <goals> 
     <goal>attached-rpm</goal> 
    </goals> 
    </execution> 
</executions>