【问题标题】:Maven - How to perform conditional executionMaven - 如何执行条件执行
【发布时间】:2012-06-12 09:02:45
【问题描述】:

有没有办法在 pom.xml 中执行 sn-p 的条件执行? 我的要求是根据 pom.xml 中定义的变量复制文件/目录以部署结构...

例如:

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

不知道如何才能做到这一点!

任何指针将不胜感激。

谢谢, SR

【问题讨论】:

    标签: maven conditional-execution


    【解决方案1】:

    您可能需要为此使用Maven AntRun Plugin

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

    最后,我的建议在这里。我们不确切知道您的案例是关于什么的,甚至没有任何真正的代码 sn-p,但是根据我的经验,在 Maven 中必须使用这样的hackin'东西真的很不寻常。对我来说,这闻起来像是 Maven 理解、项目结构或类似问题的一些问题。我可能错了,也许您的情况确实需要这样做,但请考虑其他选项以适应 Maven 默认方法和约定。

    【讨论】:

    • 谢谢米哈尔。将尝试配置文件...好的,这就是我要执行的情况。我已经为我的项目定义了 jspc、cobertura 和 findbugs 的插件。每次我运行构建所有这些插件时;我所做的是,我在 pom.xml 中定义了一个名为 phase 的变量(可能值为 null/package)。当这个值设置为 null 时......这些插件没有被执行。在这种情况下,我想更改我的 war-plugin 以跳过复制逻辑(报告复制逻辑)。
    • 这就是 Gradle 更好的原因 - 有这个确切的问题。
    【解决方案2】:

    嗯,你可以使用 Maven 的profiles 来做到这一点。

    或者你可以看看Maven的Ant Tasks

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      相关资源
      最近更新 更多