Ant tasks werden nicht hintereinander abgearbeitet

redenhofer

Grünschnabel
Ich hab ein Problem mit einem Ant skript, das anscheinend noch keine im Netz hatte. Ich hab ein target, mit drei Tasks, wobei der zweit Task ein Java task ist. Ein Call auf ein jar, dass nur die Zahlen 0-19 ausgibt. Die sollen dann in der outputproperty zurück an das Skript gegeben werden und dann mit echo angezeigt werden.
Das ist das Skript:

Code:
<project name="test" default="count" basedir=".">
<target name="count">
	    <echo message="A"/>
	  	
	    <java classname="test.Count" fork="true" failonerror="true" outputproperty="numbers">
	     <classpath>
	       <pathelement path="count.jar"/>
	       <pathelement path="${java.class.path}"/>
	       <pathelement path="."/>
	     </classpath>
	    </java>
	    
	    <echo message="B"/>
	    <echo message="Output:${numbers}"/>
	  </target>
</project>

im count.jar gibt es nur die Klasse test.Count, die schaut so aus:
Code:
package test;

public class Count {
   public static void main(String[] args) {
       new Count();
   }
      public Count() {
       for (int i=0; i < 20; i++) {
           System.out.println(i);
       }
   }
}

Das seltsame ist nun die Ausgabe wenn ich das Skript ausführe:

Code:
ant -f count.xml

Buildfile: count.xml

count:
     [echo] A
     [echo] B
     [echo] Output:0
     [echo] 1
     [echo] 2
     [echo] 3
     [echo] 4
     [echo] 5
     [echo] 6
     [echo] 7
     [echo] 8
     [echo] 9
     [echo] 10
     [echo] 11
     [echo] 12
     [echo] 13
     [echo] 14
     [echo] 15
     [echo] 16
     [echo] 17
     [echo] 18
     [echo] 19

BUILD SUCCESSFUL
Total time: 0 seconds

Die Ausgabe von B wird schon ausgeführt, obwohl der java Task noch gar nicht angefangen hat bzw. erst gestartet wird. Und die Property numbers ist natürlich leer, obwohl ich mir dort die 20 Zahlen erwarten würde.
Zuerst dachte ich mir es liegt an der fork="true" Einstellung. Aber auch ohne diesem Attribut bleibt das Ergebnis unverändert.

Wäre cool, wenn jemand einen Tipp für mich hätte, was hier falsch ist. Falls es jemand ausprobieren möchte: http://www.fileuploadx.de/972764
Das Ganze passiert mit ant 1.7.1 unter windows und linux.

Danke fürs Lesen!
 
Entwarnung. Bei dem Beispiel passt eh alles.
Da der Output der Java-Klasse nicht als echo ausgegeben wird und ich nach dem Aufruf den output aus der Property explizit mit echo ausgebe, macht es den Eindruck, dass der java task erst am Ende gestartet wird.
 

Neue Beiträge

Zurück