需要根据属性的值在ant脚本中设置路径(cp)

时间:2009-03-20 15:44:16

标签: ant

我想根据属性的值将路径变量cp设置为两个值中的一个。

E.g。以下是我想要实现的目标,但我不确定如何让它正常工作......

<if>
    <contains string="${jboss.home}" substring="jboss-4.2.3.GA"></contains>
    <then>
        <echo message="Using JBoss 4.2.3 classpath"/>
        <path id="cp"> 
        ...
        </path>
    </then>
    <else>
        <echo message="Using JBoss 4.0.5 classpath"/>
        <path id="cp">
        ...
        </path>
    </else>
</if>

2 个答案:

答案 0 :(得分:6)

<condition property="usejboss423">
    <contains string="${jboss.home}" substring="jboss-4.2.3.GA"/>
</condition>

<target name="build.jboss.cp" depends="build.jboss.cp.423,build.jboss.cp.405"/>

<target name="build.jboss.cp.423" if="usejboss423">
    <path id="cp">
    ... JBoss 4.2.3 classpath
    </path>
</target>

<target name="build.jboss.cp.405" unless="usejboss423">
    <path id="cp">
    ... JBoss 4.0.5 classpath
    </path>
</target>

答案 1 :(得分:2)

如果您需要做很多事情,请安装AntXtras。您只需将一个JAR文件添加到Ant的类路径中,您就可以执行此操作:

<condition property="usejboss423">
  <contains string="${jboss.home}" substring="jboss-4.2.3.GA"/>
</condition>

<do if="usejboss423">
  ...
</do>

<do unless="usejboss423">
  ...
</do>

它还有许多其他有用的功能。