2012-06-12 79 views
5

有没有办法在pom.xml中执行片段的条件执行? 我的要求是复制文件/目录基于在pom.xml中定义的变量来部署结构...Maven - 如何执行条件执行

如:

<if> 
    < equals arg1="package" arg2="package"/> 
     < then> 
       .... 
      < /then> 
    < /if> 

不知道我怎么能做到这一点!

任何指针将不胜感激。

感谢, SR

回答

4

可能是你需要使用Maven AntRun Plugin了点。

通常,在POM中没有条件表达式。唯一类似于此的是build profiles,它可以在某些特定条件下激活,但它们可能不适合您当前的情况。

最后,我的建议在这里。我们并不确切知道你的案例是什么,甚至没有任何真正的代码片段,但是根据我的经验,在Maven中使用这种hackin的东西是非常不寻常的。对我来说,它听起来像Maven理解,项目结构或类似的东西有些问题。我可能是错的,也许你的案例真的需要,但考虑其他选项,以适应Maven的默认方法和约定。

+0

谢谢Michal。将尝试配置文件...好吧,这是我想要执行的情况。我已经为我的项目定义了jspc,cobertura和findbugs的插件。每次我运行构建所有这些插件执行;我所做的是,我在pom.xml中定义了一个名为phase的变量(可能的值为null/package)..当这个值设置为null时......这些插件没有执行。在这种情况下,我想改变我的war-plugin跳过复制逻辑(报告复制逻辑)。 – user1450759

+0

好吧,所以它似乎配置文件将在这里工作。 –

+0

这就是为什么Gradle更好 - 有这个确切的问题。 – JamesC

2

那么,你可以使用Maven的profiles来做到这一点。或者你可以看看Maven的Ant Tasks