2010-05-03 10 views

Répondre

8

Cela dépend vraiment de ce que vous entendez par "différence substantielle". La différence serait que l'un appelle l'autre, donc, fondamentalement, c'est la même chose mais utilisée dans des contextes différents.

Voici un extrait de defaults.properties qui définit les tâches standard Ant:

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

Si vous ouvrez le code source de ces tâches, vous verrez que CallTarget contient un objet Ant et les délégués la plupart des travaux à it:

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(); 
    } 
    .......... 
    .......... 
} 
Questions connexes