模块依赖与人工制品

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 吗?然后他们应该形成一个多模块项目。