1

我目前正在从事一个包含大约十几个子项目的项目。

每个子项目都包含一个单独构建依赖关系的 POM。

上游子项目包含下游子项目作为依赖项,就像您包含对 log4j 之类的依赖项一样:

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>

我们将这些依赖项保存在本地 Nexus 存储库中。

这似乎对我们有用。

然而,经过 11 个月的开发,我今天决定重新审视这十几个 POM 文件,并考虑到重构。

我随后发现了<parent>and<module>标签,并开始质疑我的 Maven 项目策略是否“正确”。

重构我的 POM 以将最上层的 POM(Web WAR 项目)更改为列出模块而不是上面的一系列依赖项的父 POM 会有什么好处?

我希望这十几个子项目中的大多数都拥有自己的生命周期,这样它们就可以在公司的 Nexus 存储库中作为其他公司项目的代码库使用。

例如,是否使用多模块方法来分解和组织项目子组件的组合?或者是否会使用一个模块来表示项目的整个组件?

4

1 回答 1

0

到目前为止,感谢大家的意见-我意识到这个问题是主观的。

过了一会儿,在我看来,这个问题的“正确”答案将由另一个问题决定:每个子项目是否都有自己的生命周期?

我想我们可以使用 UML 类聚合和组合作为隐喻。如果一个子项目(从@yorkw 借用一个术语的叶节点)不能单独存在或在父项目范围之外有自己的生命周期(无论是WAR、EAR 等等),那么恕我直言该结构将保证在父 POM 中使用模块。

否则,由于该项目可以独立存在,我会说(再次恕我直言)该结构将保证将该项目包含为对其父项目的依赖。

于 2013-01-17T13:29:57.067 回答