小编典典

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

all

我有一个多模块 Maven 项目,其中包含一个父项目P和三个子模块ABC. 两者都是战争项目BC都依赖于A.

我可以输入mvn compileP正确编译所有子模块。当我想对特定模块进行操作时,问题就来了。

我希望能够为 project 打包一个战争B,但是当我从 ‘s 目录运行 package 命令时B,它抱怨它找不到A.

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

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

  2. 每次打包时都必须将 A 的快照安装到本地存储库中B吗?

A当仍在积极开发中时,第二种情况并不有趣。

这里有什么最佳实践吗?


阅读 115

收藏
2022-03-14

共1个答案

小编典典

这里有什么最佳实践吗?

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

-pl, --projects
        Build specified reactor projects instead of all projects
-am, --also-make
        If project list is specified, also build projects required by the list

所以只需cd进入父 P 目录并运行:

mvn install -pl B -am

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

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

mvn install -pl :B -am
2022-03-14