2010-05-03 12 views

Antwort

8

Es hängt wirklich davon ab, was Sie mit "wesentlichen Unterschied" meinen. Der Unterschied wäre, dass man den anderen anruft, also grundsätzlich das Gleiche ist, aber in verschiedenen Kontexten verwendet wird.

Hier ist ein Ausschnitt aus defaults.properties, die die Standard-Ant-Tasks definiert:

ant=org.apache.tools.ant.taskdefs.Ant 
antcall=org.apache.tools.ant.taskdefs.CallTarget 
........... 

Wenn Sie den Quellcode dieser Aufgaben eröffnen erhalten Sie eine Ant Objekt und die Delegierten die meiste Arbeit sehen, dass CallTarget enthält zu es:

public class CallTarget extends Task { 
    private Ant callee; 
    ........... 
    ........... 
    /** 
    * Delegate the work to the ant task instance, after setting it up. 
    * @throws BuildException on validation failure or if the target didn't 
    * execute. 
    */ 
    public void execute() throws BuildException { 
     if (callee == null) { 
      init(); 
     } 
     if (!targetSet) { 
      throw new BuildException(
       "Attribute target or at least one nested target is required.", 
       getLocation()); 
     } 
     callee.setAntfile(getProject().getProperty("ant.file")); 
     callee.setInheritAll(inheritAll); 
     callee.setInheritRefs(inheritRefs); 
     callee.execute(); 
    } 
    .......... 
    .......... 
} 
Verwandte Themen