【问题标题】:Module dependency vs artifactory模块依赖与工件
【发布时间】:2018-06-29 09:55:22
【问题描述】:

我们有如下的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 中的一些共享组件也被模块(例如框架)使用。它们是从远程工件服务器中检索的,而模块间依赖项工件(例如 module-1.jar)是在 maven 构建期间在本地检索的。

我的问题是关联依赖项的最佳方式是什么。按模块还是按工件服务器中存储的工件?这个例子有两种用法。我不知道我们应该在哪种情况下进行

1) 将所有相互依赖的模块分组在同一个父 pom 下或

2) 始终从远程工件仓库中提取依赖的工件,并让每个模块独立构建

有什么优点和缺点吗?对不起我的英语不好。我希望我的问题很清楚。谢谢!

【问题讨论】:

    标签: java maven pom.xml artifactory


    【解决方案1】:

    经验法则是:

    您总是同时构建罐子吗?然后他们应该形成一个多模块项目。

    【讨论】:

    • 您能否详细说明我们什么时候要同时构建罐子?和开发团队组织有关系吗?
    • 更多的是与变化的传播有关。如果 A 的变化经常导致 B 和 C 的变化,那么您应该将它们一起构建。强耦合 jars 通常是一起构建的。但是你在考虑组织结构时也是对的:如果 A 和 B 的职责在不同的团队中,那么将它们放在同一个多模块项目中是没有用的。
    • 非常感谢!现在我更好地理解了人们为什么要创建一个多模块项目。
    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 2011-05-08
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多