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