【问题标题】:Maven Modules optional in pom.xmlpom.xml 中可选的 Maven 模块
【发布时间】:2015-10-26 22:58:14
【问题描述】:

嗨,我有父 pom.xml 如下所示..,假设我目前有 4 个模块.. 但在某些时候,我可能不会一直拥有所有 4 个模块。 有没有办法让这些模块(子项目)在根 pom.xml 中成为可选的。 这意味着子项目不会出现在一个分支中,但会出现在另一个分支中.. 我不想为不同的分支使用多个 root pom.xml's .. 有可能吗?

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

【问题讨论】:

  • 我没明白,项目模块是一个不可避免的部分,你是如何让它成为可选的
  • Afaik 在引用模块中定义依赖项时,您只能将依赖项定义为可选
  • 我有 2 个不同的开发分支。其中一个分支有新添加的模块(子项目),另一个开发。分支没有那个模块(新的子项目不存在)。因此,在一个分支中,我必须在根 pom.xml 中添加新添加的模块,而在另一个分支中,我不必添加新添加的子模块。我的问题是,如果子项目目录不存在,我可以将这些模块作为 pom.xml 的一部分,然后它会跳过并继续为下一个模块应用目标。

标签: java maven


【解决方案1】:

您可以使用配置文件,就像他们在 flex-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>

【讨论】:

  • maven.test.skip=true 让我很难过
  • @mhaller 这不是主题 - 但我删除它是为了让你开心 ;-)
  • @mhaller:?你在说什么
  • @srinannap:其中一个配置文件中有一个 maven 跳过测试属性, - 我删除了它,因为它与模块问题无关。
  • 评论混乱让我微笑 =]
猜你喜欢
  • 2012-08-19
  • 2011-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
相关资源
最近更新 更多