2017-02-24 2 views
0

J'ai un build.xml qui a différentes actions taskdef.Comment exécuter des actions taskdef basées sur l'exigence parmi la liste des actions taskdef définies dans le fichier build.xml?

en cours d'exécution à partir de la ligne de commande je veux invoquer les actions taskdef en fonction de l'exigence que nous pouvons faire pour les cibles ant.

Ma question est de savoir comment exécuter les actions taskdef à partir de la ligne de commande. En attachant l'exemple de code ici je veux exécuter seulement le premier taskdef helloworld seulement à partir de la ligne de commande.

<?xml version="1.0" encoding="ISO-8859-1"?> 
<project name="MyTask" basedir="." default="use"> 
     <taskdef name="helloworld" classname="HelloWorld" classpath="${ant.project.name}.jar"/> 
     <helloworld/> 
<taskdef name="helloworld1" classname="HelloWorld1" classpath="${ant.project.name}.jar"/> 
     <helloworld1/> 
<taskdef name="helloworld2" classname="HelloWorld2" classpath="${ant.project.name}.jar"/> 
     <helloworld2/> 
</project> 

Répondre

0

Créez une cible distincte pour chaque tâche comme suit. Notez comment la cible "use" par défaut exécutera les trois tâches:

<project name="MyTask" basedir="." default="use"> 

    <target name="use" depends="helloworld,helloworld1,helloworld2"/> 

    <target name="helloworld"> 
     <taskdef name="helloworld" classname="HelloWorld" classpath="${ant.project.name}.jar"/> 
     <helloworld/> 
    </target> 

    <target name="helloworld1"> 
     <taskdef name="helloworld1" classname="HelloWorld1" classpath="${ant.project.name}.jar"/> 
     <helloworld1/> 
    </target> 

    <target name="helloworld2"> 
     <taskdef name="helloworld2" classname="HelloWorld2" classpath="${ant.project.name}.jar"/> 
     <helloworld2/> 
    </target> 
</project> 
+0

ne pouvons-nous pas avoir tous les taskdef dans une seule cible et les exécuter en fonction de l'exigence? –

+0

@KethanSrinivas Si vous les mettez tous dans une seule cible, ils sont exécutés ensemble. Je pensais que le but était de pouvoir les gérer individuellement? D'où plusieurs cibles: Par exemple "ant helloworld1" –