gpt4 book ai didi

java - Maven : Aggregation vs. 依赖

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:55 26 4
gpt4 key购买 nike

我是 Maven 的新手,现在正尝试建立我的第一个项目树。我正在努力理解两种选择之间的区别:

我有我想要捆绑的 jar 和 war 项目(每个两个)。传统上,我只是创建一个将所有四个作为依赖项的 ear 项目。

现在我读到了 poms 的聚合,但我不确定该怎么做(参见 http://maven.apache.org/pom.html#Aggregation )。我应该用这四个项目创建一个聚合 POM 吗?

我想基本上我的问题是:如果依赖项是我“自己的”项目之一,那么模块和依赖项之间的最大区别是什么。

最佳答案

模块只是一种组织事物的方式。

在多模块构建中,您可以一步构建完整的工件树(记住 Joel Test )。但是,其中每一个都将是一个单独的工件,可以作为依赖项单独引用。

这是一个示例布局,包装在括号中。

root (pom)
- project1 (jar)
- project2 (war) -> references project1 as dependency
- project3 (jar)
- project4 (war) -> references project3 as dependency
- project5 (ear) -> references project2 and project4 as dependency

在根目录调用mvn install来构建整个树。

这里假设project1只被project2使用,project3只被project4使用。否则这里是一个更复杂的场景。

root (pom)
- project1 (jar)
- project2 (jar)
- project3 (war) -> references project1 and project2 as dependency of scope provided
- project4 (war) -> references project1 and project2 as dependency of scope provided
- project5 (ear) -> references project1 through project4 as dependency

因此,模块消除了独立构建多个项目的工作,但您仍然需要自己管理依赖项。

关于java - Maven : Aggregation vs. 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3343579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com