模块依赖与人工制品
Module dependency vs artifactory
我们有如下maven聚合的pom项目
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc</groupId>
<artifactId>project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>module-1</module>
<module>module-2</module>
<module>module-n</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.xyz<groupId>
<artifactId>framework</artifactId>
<version>1.1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.xyz</groupId>
<artifactId>dao</artifactId>
<version>1.1.1-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
module-2 依赖于 module-1
AND module-n 依赖于 module-1 和 module-2。
maven reactor 可以解决所有模块间的依赖关系(构建顺序是 module-1、module-2、module-n)。
来自 com.xyz 的一些共享组件也被模块使用(例如框架)。它们是从远程工件服务器检索的,而模块间依赖工件(例如模块-1.jar)是在 Maven 构建期间在本地检索的。
我的问题是关联依赖项的最佳方式是什么。按模块还是按存储在工件服务器中的工件?这个例子有两种用法。想不通应该在什么情况下
1) 将所有相互依赖的模块分组在同一个父 pom 下或
2) 始终从远程工件仓库中提取依赖工件,并让每个模块独立构建
有什么优缺点吗?对不起我糟糕的英语。我希望我的问题很清楚。谢谢!
经验法则是:
你总是同时构建 jar 吗?然后他们应该形成一个多模块项目。
我们有如下maven聚合的pom项目
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc</groupId>
<artifactId>project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>module-1</module>
<module>module-2</module>
<module>module-n</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.xyz<groupId>
<artifactId>framework</artifactId>
<version>1.1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.xyz</groupId>
<artifactId>dao</artifactId>
<version>1.1.1-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
module-2 依赖于 module-1 AND module-n 依赖于 module-1 和 module-2。
maven reactor 可以解决所有模块间的依赖关系(构建顺序是 module-1、module-2、module-n)。
来自 com.xyz 的一些共享组件也被模块使用(例如框架)。它们是从远程工件服务器检索的,而模块间依赖工件(例如模块-1.jar)是在 Maven 构建期间在本地检索的。
我的问题是关联依赖项的最佳方式是什么。按模块还是按存储在工件服务器中的工件?这个例子有两种用法。想不通应该在什么情况下
1) 将所有相互依赖的模块分组在同一个父 pom 下或
2) 始终从远程工件仓库中提取依赖工件,并让每个模块独立构建
有什么优缺点吗?对不起我糟糕的英语。我希望我的问题很清楚。谢谢!
经验法则是:
你总是同时构建 jar 吗?然后他们应该形成一个多模块项目。