2010-12-15 69 views
10

嗨我有像下面的父pom.xml ..说我目前有4个模块.. 但在某些时候,我可能并不是所有的4个模块.. 有没有什么办法让这些模块(子项目)在根目录pom.xml中是可选的。 这意味着子项目不会出现在一个分支中,但会出现在另一个分支中。我不想为多个分支使用多个根pom.xml的 ..可能吗?在pom.xml中可选的Maven模块

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.xx.xx.correspondence</groupId> 
    <artifactId>xxHudsonTP</artifactId> 
    <version>1</version> 
    <packaging>pom</packaging> 

    <modules> 
    <module>xxCastor</module> 
    <module>cxxYYYCastor</module> 
    <module>xxCommon</module> 
    <module>xxxx</module>  
    </modules> 
</project> 
+0

我没有得到它,项目的模块是在不可避免的一部分,你好吗使其成为可选 – 2010-12-15 09:58:05

+0

Afaik当你在引用模块中定义依赖时,你只能将依赖定义为可选 – lisak 2010-12-15 10:03:52

+0

我有2个不同的开发分支。其中一个分支有新添加的模块(Child项目)和另一个开发者。分支没有该模块(新的子项目不存在)。所以在一个分支中,我必须在根pom.xml中添加新添加的模块,而在另一个分支中,我不必添加新添加的子模块。我的问题是,如果子项目目录不存在,那么我是否可以将这些模块作为pom.xml中的一部分添加到任何可选的说明中,然后它将跳过并继续为下一个模块应用目标。 – srinannapa 2010-12-15 10:04:48

回答

10

您可以使用情景,像他们这样做是例如柔性mojos插件项目:

... 
<profiles> 

    <profile> 
     <id>minimal</id> 
     <modules> 
     <module>flexmojos-parent</module> 
     <module>flexmojos-sandbox</module> 
     <module>flexmojos-generator</module> 
     <module>flexmojos-maven-plugin</module> 
     <module>flexmojos-super-poms</module>   
     <module>flexmojos-testing</module>   
     </modules> 
    </profile> 

    <profile> 
     <id>release</id> 
     <modules> 
     <module>flexmojos-parent</module> 
     <module>flexmojos-sandbox</module> 
     <module>flexmojos-generator</module> 
     <module>flexmojos-maven-plugin</module> 
     <module>flexmojos-super-poms</module> 
     <module>flexmojos-archetypes</module> 
     <module>flexmojos-testing</module> 
     </modules> 
    </profile> 

<profiles> 
+3

maven.test.skip = true让我伤心 – mhaller 2010-12-15 10:44:25

+0

@mhaller这不是主题 - 但我删除它让你开心;-) – Ralph 2010-12-15 10:47:47

+0

@mhaller:?你在说什么 – srinannapa 2010-12-15 10:48:39