我在使用 Maven 配置我们的项目时遇到了一些困难,需要一些帮助:)
比如说,我有一个多模块项目,包含模块 A 和 B(还有大约 20 个其他模块),但它们都继承自某些“根”pom。
我还有一个自定义的 Maven 插件,应该只为模块 A 启用。
插件应该以相同的方式对所有模块运行,所以我将配置放在根 pom 中。
现在,插件已在配置文件中定义,因此只有在我明确需要时才会激活它:
mvn test -PrunMyPlugin
如果我从根目录运行此命令并且在模块 A 的目录中运行,这应该可以工作。在模块 B 中,无论此配置文件如何,插件都不应运行。
另一方面
mvn test
不应该调用插件。
我尝试过对属性使用激活,但它对我不起作用。 我试图避免需要为每个具体模块配置插件并将所有配置保留在根 pom 中的情况。
有人可以提供任何简单的例子来说明如何做到这一点吗?非常感谢任何帮助。
提前致谢
最佳答案
Maven 2 或 3 目前不支持在父项中定义一个配置文件,然后从子项或另一个配置文件中激活它。有几个 stackoverflow 问题和答案 [1] 涵盖了详细信息。 Maven 的问题跟踪器中有相关的功能请求:
- https://issues.apache.org/jira/browse/MNG-3309
- https://issues.apache.org/jira/browse/MNG-4565
- https://issues.apache.org/jira/browse/MNG-5127
@Raghuram 关于使用 <pluginManagement>
的建议是一种无需重复配置即可完成这项工作的方法。另一种是在需要它的每个子模块中显式复制配置。
[1]: Activate different Maven profiles depending on current module? ; Why can't I activate a Maven2 profile from another profile?
关于java - Maven - 无法在多模块项目中激活配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9989183/