2012-01-28 5 views
1

J'essaye d'employer le compilateur xjc de la fourmi. Construit avec succès mais rien n'est généré. Mon script ant est la suivante:en utilisant xjc avec ant

<?xml version="1.0" encoding="UTF-8"?> 

<project name="AutomateWithAnt" basedir="."> 
    <property file="build.properties"/> 

    <path id="compile.classpath"> 
    <fileset dir="${lib.includes}" includes="*.jar"></fileset> 
    </path> 

    <target name="init" description="create java class"> 
    </target> 
    <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask" classpathref="compile.classpath"/> 

    <!-- Generates the source code from the test.xsd schema using jaxb --> 
    <target name="option-generate" description="Generates the source code" depends="init">  
     <xjc schema="test.xsd" destdir="${generated-src.dir}" package="${generated-src.dir}"> 
      <arg value="-Xcommons-lang" /> 
      <arg value="-Xcommons-lang:ToStringStyle=SHORT_PREFIX_STYLE" /> 
      <produces dir="${generated-src.dir}" includes="**/*.java" /> 
     </xjc> 
    </target> 
</project> 

mes build.properties est:

lib.includes=lib/ 
generated-src.dir=/ 

J'utilise Java 1.6 et je l'ai utilisé JAXB-sjc.jar.

+0

Etes-vous sûr que votre tâche 'xjc' est appelée? Ajoutez '' à votre tâche. Ou vous invoquez votre fourmi comme 'ant xjc'? –

+0

Oui, vous aviez raison, ce n'est pas appelé. Pouvez-vous s'il vous plaît me dire ce que je fais mal? – user122591

Répondre

3

Vous avez défini 2 cibles Ant (init et option-generate), mais aucune d'entre elles ne sera invoquée, sauf si vous spécifiez lequel exécuter.

Vous devez le spécifier sur la ligne de commande, par ex.

ant option-generate 

ou ajouter une cible par défaut à l'élément <project>, par exemple,

<project name="AutomateWithAnt" basedir="." default="option-generate"> 

Soit dit en passant, votre cible init est vide, et donc inutile.