I have a multi-module Maven project with a parent project P
and three sub-modules A
, B
, and C
. B
和 C
都是战争项目,都依赖于 A
。
我可以在 mvn compile
P
并正确编译所有子模块。当我想对特定模块进行操作时,问题就来了。
我希望能够为项目 B
打包战争,但是当我从 B
的目录运行打包命令时,它抱怨找不到依赖项对于 A
。
我从这个问题中了解到: Maven 和依赖模块 也许 Maven 并不是真正为这种类型的依赖解析而设计的,但这引出了我如何打包 B
的问题?
当我真的只想要
B
时,是否必须为整个项目层次结构运行mvn package
?每次我想打包
B
时,我是否必须将 A 的快照安装到我的本地存储库中?
当 A
仍在积极开发中时,第二种情况并不有趣。
这里有什么最佳实践吗?
原文由 Brian Ferris 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 Maven 高级反应器选项,更具体地说:
所以只需
cd
进入父 P 目录并运行:这将构建 B 和 B 所需的模块。
请注意,如果您引用与目录名称不同的
artifactId
,则需要使用冒号:如此处所述: