繁体   English   中英

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

[英]Maven - can't activate profiles in multi-module project

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

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

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

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

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

mvn test -PrunMyPlugin

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

另一方面

mvn test

永远不应该调用插件。

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

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

提前致谢

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

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

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

处理此要求的方法之一是在多模块父pom的<pluginManagement>部分中定义插件。 在您需要使用此插件的每个项目中,您都要声明它。

这样,您可以在中心位置定义所有插件详细信息和配置,并且可以灵活地仅将其用于相关模块。 更多细节在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM