Cree un proyecto en un JAR automáticamente en Eclipse

171

Tengo un proyecto Eclipse donde quiero mantener mi proyecto Java integrado en un JAR automáticamente. Sé que tengo una opción para exportar el proyecto a un JAR; si hago un clic derecho; pero lo que realmente estoy buscando es que, al igual que Eclipse, construye automáticamente los .classarchivos de un proyecto y los coloca en la carpeta de destino; también debe construir un JAR automáticamente y copiar el último JAR en alguna ubicación o en una específica.

¿Existe una opción para configurar Eclipse de tal manera, para construir JAR automáticamente?

Solo para dejar en claro a los chicos, lo suficientemente pacientes como para responder mi pregunta; No estoy mirando a ANT como solución; como ya lo uso, pero lo que me gustaría es algo que se inicia automáticamente, ya sea con un disparador basado en el tiempo o una compilación inmediata con cambio.

Priyank
fuente
1
Mi opinión personal: utilice m2e, la integración de Eclipse maven, por lo que genera un frasco para usted como parte de la compilación. Recientemente intenté usar Eclipse sin Maven y no puedo creer lo primitivo que es el generador de Java básico.
Craig Ringer
1
Para 2018 use una herramienta de compilación en lugar de la funcionalidad específica de IDE. Maven le compra independencia IDE y soporte de línea de comando.
Thorbjørn Ravn Andersen
@ Craig Ringer: ¿hay algún enlace sobre cómo hacerlo?
nsandersen

Respuestas:

27

Echa un vistazo a Apache Ant

Es posible usar Ant para compilaciones automáticas con eclipse, así es como


fuente
Ya estoy usando Apache Ant para hacer las compilaciones y hacer Jar. Pero lo que realmente estaba buscando era una forma de evitar la hormiga apache y usar directamente el eclipse.
Priyank
Disculpas, no revisé el artículo en el enlace anterior. De hecho, habla de lo que necesito. Gracias.
Priyank
1
La respuesta de Konrad coincide más estrechamente con lo que estaba buscando el OP.
lycono
Lycono, no estoy de acuerdo: el OP quería que el jar se mantuviera actualizado, y exportar un archivo jar no intenta resolver ese problema.
James Moore
1
En julio de 2011, el artículo al que hace referencia @Peter no habla sobre cómo construir un archivo jar en absoluto.
James Moore
288

Quieres un .jardescarchivo. No se inician automáticamente, pero está dentro de 2 clics.

  1. Haga clic derecho en su proyecto
  2. Escoger Export > Java > JAR file
  3. Elija los archivos incluidos y nombre JAR de salida, luego haga clic Next
  4. Marque "Guardar la descripción de este JAR en el espacio de trabajo" y elija un nombre para el nuevo .jardescarchivo

Ahora, todo lo que tiene que hacer es hacer clic derecho en su .jardescarchivo y elegir Create JARy lo exportará en el mismo lugar.

Konrad
fuente
Es triste que esta respuesta no haya recibido más votos positivos (o la mejor respuesta) hace meses. Oh, bueno, Konrad ya no está.
Dan Rosenstark
25
En Eclipse Galileo, tuve que reemplazar su paso 1 con Archivo -> Exportar -> Java -> archivo JAR.
Matt Huggins
9
¿Hay alguna manera de automatizar el paso 'clic derecho -> Crear JAR'?
Asaf
44
¿Hay alguna manera de automatizar el paso 'clic derecho -> Crear JAR' o vincularlo a un combo de teclas?
Pacerier
55
Utilizo "Exportar ... -> Java -> Archivo JAR ejecutable" para crear exactamente eso.
TedTrippin
70

Cree un archivo Ant y dígale a Eclipse que lo construya. Solo hay dos pasos y cada uno es fácil con las instrucciones paso a paso a continuación.


Paso 1 Cree un archivo build.xml y agréguelo al 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 a la captura de pantalla a continuación. Tenga en cuenta el icono Ant en build.xml. Build.xml en Eclipse Project

Paso 2 Haz clic derecho en el nodo raíz del proyecto. - Seleccione Propiedades - Seleccione Constructores - Seleccione Nuevo - Seleccione Ant Build - En la pestaña Principal, complete la ruta al archivo build.xml en la carpeta bin .

Configuración del constructor de hormigas Paso de compilación: pestaña Objetivos

Verificar la salida

La ventana de salida de Eclipse (llamada Consola) debería mostrar lo siguiente después de una compilación:

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

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

EDITAR: Algunos comentarios útiles por @yeoman y @betlista

@yeoman Creo que la inclusión correcta sería /.class, no * .class, ya que la mayoría de las personas usan paquetes y, por lo tanto, la búsqueda recursiva de archivos de clase tiene más sentido que la inclusión plana

@betlista recomendaría no tener build.xml en la carpeta src

Thomas Bratt
fuente
2
Sí, puede elegir los objetivos para el paso de compilación de la siguiente manera: Después de una limpieza, compilación manual, compilación automática y durante una limpieza. Auto Build debería darte lo que quieres :)
Thomas Bratt
8
Después de haber probado ambos, esta solución parece mucho mejor que la de Konrad. Requiere que descubras manualmente algunas rutas en tu archivo de compilación, pero permite la compilación automática (en lugar de 2 clics) y permite una fácil personalización (por ejemplo, copia el jar después de la compilación). Aquí se explica cómo crear un archivo jar cuando se tiene el archivo de compilación en la raíz y se tienen varios niveles anidados de paquetes:<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi
3
+1 ¿Cómo no es esta la respuesta aceptada y ni siquiera la más votada?
Juan Garcia
2
Muchas gracias. Recomendaría no tener build.xmlen la carpeta src, pero el resto funciona bien, ¡increíble!
Betlista
1
Creo que la inclusión correcta sería / .class, no * .class, ya que la mayoría de las personas usan paquetes y, por lo tanto, la búsqueda recursiva de archivos de clase tiene más sentido que la inclusión plana. Eliminaré mi +1 hasta entonces porque la respuesta generalmente no funciona como está.
yeoman
13

Esto es posible definiendo un generador personalizado en eclipse (ver el enlace en la respuesta de Peter). Sin embargo, a menos que su proyecto sea muy pequeño, puede ralentizar su espacio de trabajo de manera inaceptable. La creación automática de archivos de clase se produce de forma incremental, es decir, solo se recompilan las clases afectadas por un cambio, pero el archivo JAR deberá reconstruirse y copiarse por completo cada vez que guarde un cambio.

Michael Borgwardt
fuente
1

Usando la respuesta anterior de Thomas Bratt , solo asegúrese de que su build.xml esté configurado correctamente:

<?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="bin/" includes="**/*.class" />
  </target>
</project>

(Observe el doble asterisco : le indicará a build que busque archivos .class en todos los subdirectorios).

Hugo Leote
fuente
0

Crear un lanzador de constructores es un problema ya que 2 proyectos no pueden tener el mismo nombre de compilación de herramienta externa. Cada nombre tiene que ser único. Actualmente me enfrento a este problema para automatizar mi compilación y copiar el JAR a una ubicación externa.

Estoy usando el Zip Builder de IBM, pero eso es solo una ayuda pero no está haciendo lo real.

La gente puede intentar usar el complemento IBM ZIP Creation. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

Anand Bansal
fuente