Maven模块+构建单个特定模块

我有一个多模块Maven项目,有一个父项目p和三个子模块aBCBC都是战争项目,都依赖于A

我可以在p中键入mvn compile,并正确编译所有子模块。当我想对特定模块进行操作时,问题就出现了

我希望能够为项目B打包一个war,但是当我从B的目录运行package命令时,它抱怨找不到a的依赖项

我从这个问题中了解到:Maven和依赖模块也许Maven并不是为这种依赖解决方案而设计的,但这就引出了如何打包B

  1. 当我真的想要B时,我是否必须为整个项目层次结构运行mvn包

  2. 每次要打包B,是否都必须将A的快照安装到本地存储库中

A仍在积极开发中时,第二个场景就没什么意思了

这里有什么最佳实践吗

这里有什么最佳实践吗

使用Maven高级反应堆选项,更具体地说:

-pl,--projects
构建指定的反应堆项目,而不是所有项目
-我,我也是
如果指定了项目列表,还可以生成列表所需的项目

因此,只需将cd放入父p目录并运行:

mvn安装-pl B-am

这将构建B和B所需的模块

请注意,如果引用的是与目录名不同的artifactId,则需要使用冒号:

mvn安装-pl:B-am

如下所述:

发表评论