Maven - 无法在多模块项目中激活配置文件

Mar*_*nik 7 java maven

我在使用Maven配置项目时遇到了一些困难,需要一些帮助:)

比方说,我有一个多模块项目,有模块A和B(还有大约20个其他模块),但它们都继承了一些"root"pom.

我还有一个自定义maven插件,只能为模块A启用.

插件应该以相同的方式运行所有模块,因此我将配置放在根pom中.

现在,插件在配置文件中定义,以便仅在我明确要求时才会激活它:

mvn test -PrunMyPlugin
Run Code Online (Sandbox Code Playgroud)

如果我从根目录运行此命令并且我正在模块A的目录中运行,这应该可以工作.在模块B中,无论此配置文件如何,插件都不应运行.

另一方面

mvn test
Run Code Online (Sandbox Code Playgroud)

永远不应该调用插件.

我试图在属性上使用激活,但它对我不起作用.当我需要为每个具体模块配置插件并将所有配置保留在根pom中时,我试图避免这种情况.

有人可以提供一些如何做到这一点的简单例子吗?任何帮助都非常感谢.

提前致谢

use*_*849 3

目前,Maven 2 或 3 不支持在父配置文件中定义配置文件,然后从子配置文件或另一个配置文件激活它。有几个 stackoverflow 问题和答案 [1] 涵盖了详细信息。Maven 的问题跟踪器中有相关的功能请求:

@Raghuram 的建议<pluginManagement>是您可以在不重复配置的情况下完成这项工作的一种方法。另一种是在每个需要它的子模块中显式复制配置。

[1]:根据当前模块激活不同的Maven配置文件?; 为什么我无法从另一个配置文件激活 Maven2 配置文件?