tags:

views:

298

answers:

2

I m trying to do this with Ant:

<property name="test" value="123"/>
<target name="helloworld" depends="${test}"/>

But I'm getting error "Target ${test} does not exist in this project."

So I m guessing I can do this?

+2  A: 

Rather than depends, you can check a property using the if attribute. See the manual for more details.

For example:

<target name="helloworld" if="test"/>

Note this only checks if the property is set (you can use unless to check if it is unset).

An alternative, more complex but powerful, approach is to use a nested condition on a depended target:

<target name="helloworld" depends="myTarget.check" if="myTarget.run">
    ...
</target>

<target name="myTarget.check">
  <condition property="test">
    <and>
      <available file="foo.txt"/>
      <available file="bar.txt"/>
    </and>
</condition>

Rich Seller
A: 

You can use the AntCall Task to call a Task inside another Task.

<project>
    <target name="asdf">
        <property name="prop" value="qwer" />
        <antcall target="${prop}" />
    </target>

    <target name="qwer">
        <echo message="in qwer" />
    </target>
</project>

To make one depend on the other, you can set a parameter in the dependent task and check it in your calling task.

drfloob