这个问题是定义模块列表的扩展,该列表应在Maven多项目构建中构建。
运行
mvn install -pl "project1, project2, etc." -am -Pmy-profile
时,maven将构建指定的模块和所有它们的依赖项,如果依赖项很多,这可能需要一段时间。
话虽这么说,一些正在编译的依赖项(由于
-am
标志)可能已经存在于本地 .m2
存储库和/或 my-profile
中,导致它们的重新编译毫无用处并且通常很耗时。
有什么方法可以指定maven只应构建给定的
-am
依赖项(如果它既不存在于my-profile
中也不存在于本地.m2
中吗?)
简短回答:Maven 出厂时无法执行此操作。一旦您使用
-am
指定依赖项应包含在反应器中(或通过配置文件包含/排除它们),原始 -pl
列表就没有什么特别的了,因此这本质上是 Maven 2 的重复:仅构建工件如果尚未安装在本地存储库中,它与此有类似的答案:
简短的回答是:没有明智的方法可以做到这一点,Maven 不会那样工作。
您可以通过使用增量构建或围绕 Maven 构建您自己的脚本来获得更好的结果。您还可以利用配置文件来专注于项目的子集,但没有现有的命令行标志或配置选项来获取您所要求的内容。