Ulf Lindback
Ulf Lindback

Reputation: 14170

Need to set path (cp) in ant script depending on value of a property

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>

Upvotes: 4

Views: 4168

Answers (2)

JW.
JW.

Reputation: 51638

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.

Upvotes: 2

Alex B
Alex B

Reputation: 24926

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

Upvotes: 7

Related Questions