MAVEN:多模块项目,如何为构建添加不同的环境

时间:2014-12-02 09:38:16

标签: maven maven-2 maven-plugin maven-release-plugin maven-archetype

我正在努力从蚂蚁转移到一个复杂的多模块项目。 我们想要实现的目标是:

  1. 易于开发,包装为开发人员。
  2. 示例:父项目              SON A

             Parent Project
                  SON 
                      GRANDSON A
                      GRANDSON B
                  DAUGTER (DEPENDS ON SON)
                      GRANDSON C
                      GRANDSON D
    

    我想要的是,当开发人员正在使用子项目时,他只需下载父项目,并且应该从svn存储库中解析SON依赖项。我知道可以通过在pom.xml中定义dependecy来完成,但这会与我的第二个要求相冲突。

    2)下载父项目的所有女儿和儿子并进行编译,以便像Jenkins这样的自动构建管理器可以检查构建。此外,如果构建成功,我还想在maven存储库的标志上发布修订版。请注意,修订版必须是每个模块的负责人。

    3)在我想要创建tar文件或我自己的样式目录的过程中,根据我的需要,它将在不同的目录中包含不同的jar。 (我可以通过添加ant copy命令来实现这一点;任何更好的想法都可以实现)

    maven实现它的标准方法是什么。

1 个答案:

答案 0 :(得分:0)

在Maven层次结构中,只有叶子项目(示例中的孙子项目)将是包含代码并生成工件(例如jar)的实际模块。内部节点(Parent,Son,Daughter)仅用于保存层次结构中模块共享的公共配置和依赖项。因此,女儿不能依赖儿子,但是孙子C可以依靠孙子A,例如。

如果父项目层次结构有自己的生命周期,即poms可以独立发布,它们应该在SVN模块上。开发子模块的开发人员甚至不需要下载这些poms,因为如果它们由Jenkins部署,它们将自动从Archiva中检索到。有关类似情况,请参阅this answer

但是,您看到表示您希望构建和释放所有模块的时间相同。在这种情况下,您可以通过将所有项目保留在同一SVN存储库中来拥有相同的pom层次结构。