2011-08-14 5 views
6

Estoy desarrollando una aplicación de escritorio utilizando SwingX, la primavera y el uso de la hormiga para construirlas. Este es mi primer proyecto en hormiga. ¿Cómo se pueden agregar los jar de classpath a la compilación de jar ejecutable de horm? Tengo swingx, spring jar en mi classpath. Este es mi objetivo para el tarro:Como incluir frascos de ruta de clases en un frasco de hormiga

<target name="jar"> 
    <mkdir dir="build/jar" /> 
    <jar destfile="build/jar/MainClass.jar" basedir="build/classes"> 
     <manifest> 
      <attribute name="Main-Class" value="MainClass" /> 
     </manifest>   
    </jar> 
</target> 

Editar:

<project name="Number"> 
    <description> 
      description 
    </description> 

    <property name="lib" value="lib" /> 
    <property name="src" value="src" /> 
    <property name="build" value="build" /> 
    <property name="classes" value="classes" /> 
    <property name="jar" value="jar"/> 

    <target name="clean"> 
     <delete dir="${build}" /> 
    </target> 

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

    <target name="compile"> 
     <mkdir dir="${build}/${classes}" /> 
     <javac srcdir="${src}" destdir="${build}/${classes}" classpathref="classpath" /> 
    </target> 

    <target name="jar" depends="clean, compile"> 
     <mkdir dir="${build}/${jar}" /> 
     <jar destfile="build/jar/Number.jar" basedir="${build}/${classes}"> 
      <manifest> 
       <attribute name="Main-Class" value="MainClass" /> 
      </manifest> 
      <fileset file="test.txt"> 
      </fileset> 
     </jar> 
    </target> 

    <target name="run"> 
     <java jar="${build}/${jar}/MainClass.jar" fork="true" /> 
    </target> 
</project> 

Respuesta

18

Usted puede añadirlos con el siguiente código:

<target name="compile"> 
    <mkdir dir="${classes.dir}"/> 
    <javac srcdir="${src.dir}" destdir="${classes.dir}"> 
     <classpath> 
       <fileset dir="${lib}"> 
        <include name="**/*.jar" /> 
       </fileset> 
     </classpath> 
    </javac> 
</target> 

<target name="jar" depends="compile"> 
    <mkdir dir="${jar.dir}"/> 
    <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"> 
     <manifest> 
      <attribute name="Main-Class" value="${main-class}"/> 
     </manifest> 
     <zipgroupfileset dir="${lib}" includes="**/*.jar"/> 
    </jar> 

</target> 

Esto incluiría todos los archivos * .jar que están bajo la $ {lib} carpeta.

Pero este código debe estar en una ant compilar objetivo. Porque antes de generar el paquete jar, debes compilarlo. Y, por lo tanto, necesitas el swingx, jarras de primavera.

+0

Dónde ponerlo dentro nodo? –

+0

Te di el código con un objetivo de compilación juntos. Importante es que el objetivo jar depende de la compilación y usted maneja la ruta de clases con los jar. Espero que ahora esté claro :). Compruebe este tutorial para la estructura básica de la hormiga: http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html – Prine

+1

leí por primera vez ese tutorial y lo hizo como se muestra en mi edición. Pero el jar swingx no se suma al Number.jar y es por eso que mi código no funciona, no se pudo iniciar. –

Cuestiones relacionadas