我正在寻找创建一个网络项目,
这个网络项目将有几个模块
- m1
- m2
- m3
- m4
- m5
我的 Web 项目是 Maven 项目,因此我了解了多模块项目。
我的问题是
我可以将我的网络项目打包到单独的 war 中,以便 P1 包含 {m1,m2,m3} 而 P2 包含 {m1,m4,m5}
- 即根据我想要交付的模块创建两个不同的可交付成果
他们是否有关于我设计 m1、m2 ... m5 时需要了解的注意事项的引用
如何为此类项目模块设置构建过程
最佳答案
根据您的请求,您应该创建如下项目的结构:
+-- root (pom.xml)
+-- m1 (pom.xml)
+-- m2 (pom.xml)
+-- m3 (pom.xml)
+-- m4 (pom.xml)
+-- m5 (pom.xml)
+-- P1 (pom.xml)
+-- P2 (pom.xml)
在 P1 中,您只需提供对要打包到此模块中的模块的依赖关系,如下所示:
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>module-one</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>module-two</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>module-three</artifactId>
<version>${project.version}</version>
</dependency>
...
</dependencies>
如果您喜欢在 P2 中拥有不同的依赖项,只需在 P2 中提供其他依赖项即可。 根据你的第二个问题,我只能说,就像在java中一样做到最好。使用接口(interface)来解耦模块等。并根据一般意图/功能分离模块,例如:
+-- core
+-- base
+-- web1
+-- api
等等。如果没有任何真正的关系,一般很难回答这个问题,举个例子可能会有所帮助。 对于你的第三个问题,我可以建议阅读Maven Complete Reference等等,不要忘记关于 maven 等的网站。
关于java - 多模块 Maven 项目设计注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20399075/