Maven - 如何进行条件执行

8

有没有一种方法可以在pom.xml中执行条件执行代码片段? 我的要求是根据在pom.xml中定义的变量将文件/目录复制到部署结构中...

例如:

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

不确定如何实现这个目标!

任何指导都将不胜感激。

谢谢, SR

2个回答

4

也许您需要使用Maven AntRun Plugin来实现这个目标。

通常情况下,POM中没有条件表达式。唯一与此有些相似的是构建配置文件,它们可以根据某些指定的条件进行激活,但它们可能并不适合您当前的情况。

最后,我的建议是:我们不知道您的具体情况,甚至没有任何真正的代码片段,但从我的经验来看,在Maven中使用这种“hackin”是非常不寻常的。对我而言,它闻起来像是Maven理解、项目结构或类似问题的一些问题。我可能是错的,也许您的情况确实需要这样做,但考虑其他选项以适应Maven的默认方法和约定。


谢谢Michal。我会尝试使用配置文件...好的,这里是我要执行的操作。我已经为我的项目定义了jspc、cobertura和findbugs插件。每次运行构建时,所有这些插件都会被执行;我所做的是,在pom.xml中定义了一个名为phase的变量(可能的值为null/package)...当这个值设置为null时,这些插件就不会被执行。在这种情况下,我想修改我的war-plugin以跳过复制逻辑(报告复制逻辑)。 - user1450759
这就是为什么Gradle比其他构建工具更好 - 因为它能够解决这个确切的问题。 - JARC

3

你可以使用Maven的配置文件来实现这个目的。

或者,你可以查看Maven的Ant任务


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接