以前,我曾处理过包含两个层次结构的多模块Maven项目。父POM后跟其各自目录和POM中的模块。
但是现在我接管了一个包含父项的项目,然后是又包含模块的模块。
这是否完全符合Maven准则,或者我正在处理定制的内容?
以及如何解释这些子模块?知道您可以为我提供指导的指南吗?
我可以成功运行所有Maven生命周期。尽管我不确定是否以及如何重构应用程序并开始插入自己的代码。
这是我的项目结构树,只剩下几个模块:
top-parent
| pom.xml (modules: applications, checks, core, test)
|
+---applications
| | pom.xml (parent: top-parent) (modules: batch, surefire, web)
| <parent>
| <artifactId>applications</artifactId>
| <groupId>com.a.b.codechecker</groupId>
| <version>1.0</version>
| </parent>
| <artifactId>batch</artifactId>
|
| |
| \---web
| | pom.xml
| <parent>
| <groupId>com.a.b.codechecker</groupId>
| <artifactId>applications</artifactId>
| <version>1.0</version>
| </parent>
| <artifactId>web</artifactId>
|
+---checks
| | pom.xml (parent: top parent) (modules: aggregator, blacklist-check)
| <parent>
| <groupId>com.a.b.codechecker</groupId>
| <artifactId>parent</artifactId>
| <version>1.0</version>
| </parent>
| <groupId>com.a.b.codechecker.checks</groupId>
| <artifactId>checks</artifactId>
| |
| +---aggregator
| | pom.xml
<parent>
<artifactId>checks</artifactId>
<groupId>com.a.b.codechecker.checks</groupId>
<version>1.0</version>
</parent>
<artifactId>aggregator</artifactId>
答案 0 :(得分:1)
我在下面提供了一些轮廓。
根据问题, 这是否完全符合Maven准则,还是我正在处理定制的商品?
是的,您可以具有Parent,Child,Grand child类型的模块结构.Parent和Child类型的maven多模块层次结构很简单,但是在某些情况下,开发人员设计为在模块内部具有多个子模块。如果您有一个具有n个模块和m个子模块的大型项目,那么对于不同级别的开发人员而言,它将变得很复杂。
根据这个问题, 该如何解释这些子模块?知道您可以为我提供指导的指南吗? 由开发团队决定如何简化管理。我建议,如果您有许多子模块,则可以创建/维护另一个独立项目,并且可以在需要时将依赖项添加到主项目中。它将为您提供该项目的粒度和单独的团队工作,而无需考虑主要项目。
对于大型项目,始终建议维护独立的项目,您可以在其他项目中添加依赖项。为此,您可以使用Nexus或Artifactory进行工件管理。