2011-01-07 41 views
39

我正在努力获取项目中的rpm-maven插件设置。在我们的分段和生产环境中,构建发生在Red Hat盒子上,但是我们有几个用于开发和测试的Windows盒子,所以我希望RPM构建过程成为配置文件的一部分,该配置文件仅在具有安装了rpmbuild。具有多个条件的Maven配置文件激活

这是我在激活状态下的第一次尝试:

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

我最初的测试只能在Windows中,建筑在CentOS的盒子参与建设,既给了我预期的效果。后来,构建在没有可用rpmbuild的Linux机器上破坏。它看起来像这样有两个条件不受支持。是这样吗?我意识到我可能只是摆脱<os/>元素并获得我想要的结果,但为了将来的参考,是否有更好的方法来创建具有多个激活条件的配置文件?

回答

39

Maven <activation> block是一个列表OR - 只要符合第一个标准,配置文件就会被激活。因此,它是不太可能,你的问题至少直到这个错误报告被固定的解决方案https://issues.apache.org/jira/browse/MNG-4565


更新:

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

+0

我怕会答案。谢谢! :) – bhinks 2011-01-07 19:12:35

+6

@binks它虽然没有意义。可悲的是,Maven:权威指南说它的行为应该是“AND” - 但事实并非如此。 – Nishant 2011-01-07 19:19:12

+0

这样的耻辱,更重要。仍然没有解决 – Mysterion 2014-05-24 16:45:27

11

而且这里描述http://www.sonatype.com/books/mvnref-book/reference/profiles-sect-activation.html最差你可以混合不同类型的示例文件,JDK和财产状况,但你不能连放两个同类型的条件,例如两个属性

<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年,这只是一个耻辱!

相关问题