2009-07-13 22 views
44

Tengo un proyecto Eclipse Java. Contiene una carpeta llamada "dist". En esa carpeta hay un archivo .jar.Cómo generar automáticamente un archivo .jar en un proyecto Eclipse Java

¿Cómo puedo configurar las cosas en este proyecto para asegurarme de que este archivo .jar se actualice cada vez que se vuelva a compilar uno de los archivos .java en el proyecto?

Gracias.

+0

duplicado de http://stackoverflow.com/questions/1062941/build-project-into-a-jar-automatically -en-eclipse –

Respuesta

4

Un patrón común es trabajar contra los archivos de clase en el proyecto (los proyectos pueden agregarse a otras rutas de construcción de proyectos y usarse en tiempo de ejecución mientras se prueba), por lo que no necesita los archivos jar durante el desarrollo.

El enfoque general para agregar un paso de compilación automático es escribir un script ant, incluirlo en su proyecto y luego puede tener la ejecución de su script ant incluida en la compilación del proyecto. Entonces, como hormiga tiene una tarea de construcción de jar bastante directa, esto no es demasiado esfuerzo si necesitas el archivo jar todo el tiempo. See para un arranque.

2

Cree un proyecto de utilidad J2EE (Util). Te permite crear una asociación con un proyecto J2EE (ProjectX). Cuando edita las propiedades de ProjectX para que dependa del proyecto Util, muestra Util como Util.jar. Con la dependencia declarada, Eclipse construirá el Util.jar cuando tenga que construir el proyecto Util. Si tiene la construcción automática activa para el proyecto Util, el archivo .jar se mantendrá sincronizado cada vez que se construya el proyecto. Si su proyecto objetivo no es uno J2EE, aún puede usar esta solución, pero use un proyecto padre J2EE ficticio.

Aquí está el enlace a la página de ayuda para el uso de la tarea ANT para la construcción de un archivo .zip desde dentro de Eclipse: http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_feature_generating_ant.htm

Una solución alternativa es utilizar el plugin Zip. Lo usamos hace más de 5 años, pero lo detuvimos cuando WSAD incluía el soporte para proyectos dependientes como archivos .jar.

34

Crea un archivo Ant y pide a Eclipse que lo cree. Solo hay dos pasos y cada uno es fácil con las instrucciones paso a paso a continuación.


Paso 1 Crear un archivo build.xml y añadir a Explorador de paquetes:

<?xml version="1.0" ?> 
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar"> 
    <target name="CreateJar" description="Create Jar file"> 
     <jar jarfile="Test.jar" basedir="." includes="*.class" /> 
    </target> 
</project> 

Eclipse debería parecerse algo como la siguiente imagen. Tenga en cuenta el icono Ant en build.xml. Build.xml in Eclipse Project

Paso 2 Haga clic derecho en el nodo raíz en el proyecto. - Seleccione Propiedades - Seleccione Constructores - Seleccione Nueva - Seleccionar Ant Build - En la ficha Principal, completar la ruta de acceso al archivo build.xml en la carpeta bin .

Ant builder configuration Build step - Targets Tab

comprobar la salida

ventana de salida El Eclipse (el nombre de la consola) deberán reflejar lo siguiente después de una construcción:

Buildfile: /home/<user>/src/Test/build.xml 

CreateJar: 
     [jar] Building jar: /home/<user>/src/Test/Test.jar 
BUILD SUCCESSFUL 
Total time: 152 milliseconds 
+1

Esto funcionó perfectamente para mí. Esto debe marcarse como la respuesta correcta. – cgTag

+1

Esto funciona genial, ¡excepto que quiero incluir todas las dependencias también! ¿Como podría hacerlo? – anon58192932

+1

Pregunto lo mismo que @advocate. ¡Mi archivo jar ahora tiene solo 346 bytes, mientras que debería tener unos 50kB! – Rodrigo

0

respuesta de Thomas funciona, pero el frasco El archivo que produce no es uno que pueda usar para ejecutar realmente la aplicación.

que terminó con:

<?xml version="1.0" ?> 
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TDSz Data Mover" default="CreateJar"> 
    <target name="CreateJar" description="Create Jar file"> 
     <delete file="DataMover.jar"/> 
     <jar jarfile="DataMover.jar" basedir="bin/" includes="**/*.class **/Messages*.*" " update="no"> 
      <zipfileset dir="D:/Java/mylib" erroronmissingarchive="true"> 
       <include name="*.jar" /> 
      </zipfileset> 
      <manifest> 
       <attribute name="Main-Class" value="some.package.and.app"/> 
      </manifest>    
     </jar> 
    </target> 
</project> 

No sé si algo ha cambiado en la hormiga ya se le dio esta respuesta, pero le tomó algo de investigación para conseguir realmente que funcione. Muchas de las soluciones en tutoriales eran sólo respuestas parciales ...

cambios principales:

  • añadido un borrar el archivo jar, ya que no se regenera cuando lo volvió a ejecutar la acumulación de hormigas después de cambiar el archivo de compilación.
  • Agregó un manifiesto para establecer correctamente el archivo ejecutable.
  • Tire en algunos archivos .jar como libs
  • Tire en los archivos MESSAGE_ para apoyar NLS

Netbeans hace que este sea mucho más fácil - sólo echa un par de cajas.

[Editado para arreglar un problema con la etiqueta frasco de forma incorrecta terminado y tire de los archivos .jar]

Cuestiones relacionadas