9

So this is the scenario. I have

<target name="test">
  <property file="blah"></property>
  <exec dir="" executable="trast.exe" resolveexecutable="true" spawn="true">
  </exec>
</target>     

<!-- So now I have the second target that uses Return value from first target -->
<target name="test2">
  <property file="blah"></property>
  <exec dir="" executable=RETURN VALUE resolveexecutable="true" spawn="true">
  </exec>
</target>     

Basically I need a way to use the result from first target in the next target. I looked online and one solution seems to be is to parse output. But is there a way to get it without parsing?

Thanks

Assaf Lavie
  • 68,254
  • 33
  • 142
  • 199
grobartn
  • 3,320
  • 11
  • 38
  • 52

2 Answers2

13

The exec task has an outputproperty. Could you do something like this:

<target name="test">
  <exec dir="" executable="trast.exe" resolveexecutable="true" spawn="true" outputproperty="blah">
  </exec>
</target>     

<!-- So now I have the second target that uses Return value from first target -->
<target name="test2">
  <exec dir="" executable="${blah}" resolveexecutable="true" spawn="true">
  </exec>
</target>

It's been a while since I used Ant and I don't have it installed on this machine, but I seem to recall doing something like the above.

Or maybe use resultproperty?

Found it here: http://ant.apache.org/manual/Tasks/exec.html

martin clayton
  • 74,574
  • 30
  • 214
  • 196
seth
  • 36,001
  • 7
  • 59
  • 57
0

The first executable return the name of the executable that you later have to run in test2, right?

So the first executable could write that name into a script file (e.g. batch file on Windows, shell file on Unix). The script would have a fixed name and your Ant script would just run it.

Assaf Lavie
  • 68,254
  • 33
  • 142
  • 199