【发布时间】:2019-08-21 08:28:35
【问题描述】:
将 Maven 与多模块项目一起使用时,例如:
/pom.xml
/project-a/pom.xml
/project-b/pom.xml
如果根 POM 构建模块 A 和 B,并且 B 依赖于 A,当我运行 mvn package 并从 根 POM 运行构建时强>:
问:B 的构建是否从当前构建“反应器”中提取以定位 A 的依赖项? (即 A 中的更改正在构建)还是 总是 转到本地存储库?
基本上,我想弄清楚当 A 中存在 B 所依赖的更改时是否需要运行 mvn install,或者我是否可以运行 mvn package 以节省一些时间。
【问题讨论】:
-
如果您通过
mvn clean package或mvn clean verify从根目录运行它,则依赖关系将在反应器中解决。这意味着您永远不需要做mvn clean install。如果您曾经遇到需要在多模块构建中执行mvn clean install的情况,这意味着您在模块中的依赖关系不正确。不,它不会转到反应堆中包含的模块的远程存储库...