您好,我正在努力实现这样的目标:
在父 pom 中,我有
<profile>
<activation>
<property>
<name>Compile</name>
<value>${project.artifactId}</value>
...
因此,如果我在父 pom 下运行 mvn -DCompile=mod1 install
,它只会将配置文件设置应用到模块 1,而不是其他模块。
同样,如果我有
<profile>
<activation>
<property>
<name>Compile</name>
<value>${project.packaging}</value>
...
然后在父 pom 下运行 mvn -DCompile=war install
,它只会将配置文件设置应用到那些要打包为 war 而不是 jar 或 pom 的配置文件设置。
我试过了,但没有按预期工作。我错过了什么吗?请帮忙。
附言无需建议解决方法,因为我只对这种方法感兴趣。如果是这样的话,简单地回答这是不可能的。谢谢
最佳答案
它不会工作,因为...
开始:
- 配置文件激活 works with system properties而不是 Maven 属性。
以及为什么从父级到子级都不起作用:
- 甚至在您的子 POM 出现之前,父 POM 中的属性就已展开。
许多人在您之前来过这里但都失败了。
有人可能想知道您到底想做什么。您是从同一个源项目构建不同的 Artifact 吗?也许您需要更多的 Maven 模块来处理事情。
关于java - Maven - 根据项目属性激活配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18889554/