Mavenconfiguration文件激活与多个条件

我正在努力获取项目中的rpm-maven插件设置。 在我们的分段和生产环境中,构build发生在Red Hat框架上,但是我们有几个用于开发和testing的Windows框,所以我希望RPM构build过程成为configuration文件的一部分,该configuration文件仅在具有rpmbuild安装。

这是我第一次尝试激活条件:

<activation> <os> <family>unix</family> </os> <file> <exists>/usr/bin/rpmbuild</exists> </file> </activation> 

我最初的testing只涉及build立在一个Windows盒子上,并build立在一个CentOS盒子上,都给了我预期的结果。 稍后,构build在没有可用rpmbuild的Linux机器上破坏。 看起来像这样有两个条件是不被支持的。 这是这种情况吗? 我意识到我可能只是摆脱<os/>元素,并得到我想要的结果,但为了将来的参考是有更好的方式来创build具有多个激活条件的configuration文件?

Maven <activation>块是一个OR列表 – 只要符合第一个标准,configuration文件就会被激活。 所以,至less在bug报告被修复之前,你的问题不太可能有解决schemehttps://issues.apache.org/jira/browse/MNG-4565


更新:

它现在在3.2.2固定 – sfussenegger(通过评论)

最糟糕的是你可以混合不同types的条件,例如文件,jdk和属性,如http://www.sonatype.com/books/mvnref-book/reference/profiles-sect-activation.html所述; ,但是你不能甚至放两个相同types的条件,例如两个属性

 <activation> <property> <name>integrationTest</name> </property> <property> <name>packaging</name> <value>swf</value> </property> </activation> 

这将不会工作,因为只有一个<property>标签将被允许。 相关的JIRA: https : //issues.apache.org/jira/browse/MNG-3328

而上面描述的错误仍然是开放的… 5年,这只是一个耻辱!

只是由我修复:)

从3.2.2开始,它将按预期工作:多个条件将进行“与”运算

参考 – https://github.com/apache/maven/commits/master ,searchMNG-4565