Need to set path (cp) in ant script depending on v

2019-07-04 11:09发布

I want to set a path variable cp to one of two values depending on the value of an property.

E.g. the following is what I'm trying to achieve, but I'm not sure about how to get it working properly...

<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>

标签: ant
2条回答
做个烂人
2楼-- · 2019-07-04 12:06
<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>
查看更多
我命由我不由天
3楼-- · 2019-07-04 12:11

If you need to do this kind of thing a lot, install AntXtras. You just add a JAR file to Ant's class path, and you can do this:

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

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

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

It has a lot of other useful features.

查看更多
登录 后发表回答