Cómo construir tarros de IntelliJ correctamente?

Tengo un proyecto que contiene un solo módulo y algunas dependencias. Me gustaría crear un jar, en un directorio aparte, que contenga el módulo comstackdo. Además, me gustaría tener las dependencias presentes junto a mi módulo.

No importa cómo gire el proceso de “comstackción” de IntelliJ, el resultado de mi módulo aparece vacío (además de un archivo META-INF).

A continuación se detalla cómo construir un contenedor con IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/

Archivo -> Estructura del proyecto -> Configuración del proyecto -> Artefactos -> Haga clic en el signo más verde -> Frasco -> Desde módulos con dependencias …

Lo anterior establece el “esqueleto” al lugar donde se guardará el contenedor. Para construirlo y guardarlo, haga lo siguiente:

Extracto al objective Jar

DE ACUERDO

Construir | Construir artefacto

Hace poco tuve este problema y creo que estos pasos son fáciles de seguir si falta algún detalle de alguna solución o enlace anterior.

Cómo crear un .jar usando IntelliJ IDEA 14.1.5:

  1. Archivo> Guardar todo.
  2. Ejecuta el controlador o la clase con el método principal.
  3. Archivo> Estructura del proyecto.
  4. Seleccione la pestaña “Artefactos”.
  5. Haga clic en el botón verde más cerca de la parte superior de la ventana.
  6. Seleccione JAR del menú desplegable Agregar. Seleccione “De módulos con dependencias”
  7. Seleccione la clase principal.
  8. El botón de opción debería seleccionar “extraer al TAR objective”. Presiona OK.
  9. Marca la casilla “Build on make”
  10. Presione aplicar y OK.
  11. En el menú principal, selecciona el menú desplegable de comstackción.
  12. Seleccione la opción construir artefactos.

Este sigue siendo un problema en 2017, ¡espero que ayude a alguien por ahí! Encontré 2 posibilidades para crear jar-s de trabajo bajo IntelliJ 2017.2

1. Creación de artefactos de IntelliJ:

  • Ir a la estructura del proyecto:

Menú Archivo

  • Crea un nuevo artefacto:

Crea un nuevo artefacto

  • Seleccione la clase principal y asegúrese de cambiar la carpeta de manifiesto:

enter image description here

Tienes que cambiar el directorio de manifiesto:

 \src\main\java 

cambiar java a los recursos

 \src\main\resources 

Así es como debería verse:

forma correcta para nuevo manifiesto

  • A continuación, elija las dependencias de lo que desea empaquetar EN su jar, o CERCA de su archivo jar

  • Para construir tu artefacto ve a construir artefactos y elige “reconstruir”. Creará una carpeta de “salida” con su archivo jar y sus dependencias.

enter image description here

2. Usando maven-assembly-plugin

Agregar una sección de comstackción al archivo pom

     maven-assembly-plugin  ServiceCreate false   com.svt.optimoo.App    jar-with-dependencies     org.apache.maven.plugins maven-compiler-plugin  1.8 1.8     
  • Cree una nueva configuración de ejecución / depuración:

Cree una nueva configuración de ejecución / depuración:

  • Elija la aplicación:

Elija la aplicación

  • Rellene el formulario
  • Agregue el objective maven “ensamblado: único” después de la comstackción para ejecutarse el último

enter image description here

Configuración final

  • Guárdalo, luego corre

enter image description here

Este procedimiento creará el archivo jar en la carpeta “destino”

Ubicación del archivo JAR

Para aquellos que se benefician de las imágenes como yo:

Archivo -> Estructura del proyecto

enter image description here

enter image description here

enter image description here

enter image description here

Es probable que sea un poco tarde, pero me las arreglé para resolverlo de esta manera -> abrir con winrar y eliminar ECLIPSEF.RSA y ECLIPSEF.SF en la carpeta META-INF, además poner “clase principal: main_class_name” (sin “.class” ) en MANIFEST.MF. Asegúrese de presionar “Enter” dos veces después de la última línea; de lo contrario, no funcionará.

Idea 8.1.3

Jar está bien, ya que hay una salida comstackda en el directorio ‘output’ (proyecto / salida / producción //)

Supongo que tienes que ejecutar ‘make’ antes de construir el jar

para las dependencias simplemente marque “mostrar biblioteca” y elija lo que desee.

Es posible que desee echar un vistazo a Maven ( http://maven.apache.org ). Puede usarlo como el proceso principal de comstackción para su aplicación, o simplemente para realizar ciertas tareas a través del cuadro de diálogo Editar configuraciones. El proceso de crear un JAR de un módulo dentro de Maven es bastante trivial, si quieres que incluya todas las dependencias en un JAR autoejecutable que también es trivial.

Si nunca antes has usado Maven, entonces quieres leer Better Builds With Maven .

Con Maven puedes usar este complemento:

     maven-assembly-plugin    [path you class main]    jar-with-dependencies     make-assembly package  single       

Si está utilizando bibliotecas de terceros con su proyecto o si tiene problemas para crear correctamente el archivo MANIFEST.MF, puede haber conflictos al ejecutar archivos JAR generados utilizando

 File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > ..... 

método mencionado anteriormente.

En su lugar, le sugiero que cree un JAR vacío y agregue todos los demás elementos a la raíz de salida manualmente. Un maravilloso artículo de blog para este método se puede encontrar aquí: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ Probé los pasos mencionados allí y todo funcionó bien ¡para mi!

Algunas de las otras respuestas son inútiles porque tan pronto como vuelva a importar el proyecto IntelliJ IDEA del proyecto maven, se perderán todos los cambios.

La construcción del contenedor debe ser activada por una configuración de ejecución / depuración, no por la configuración del proyecto.

Jetbrains tiene una bonita descripción de cómo puedes lograr esto aquí:

https://www.jetbrains.com/help/idea/maven.html

Desplácese hacia abajo a la sección llamada “Configuración de desencadenantes para objectives de Maven”.

(La única desventaja de su descripción es que sus capturas de pantalla están en el esquema de color negro sobre blanco predeterminado en lugar del súper sorprendente tema darcula. ¡Uf!)

Entonces, básicamente, lo que haces es abrir el panel de “Proyectos Maven”, encontrar el proyecto de interés (en tu caso, el proyecto que construye tu jar) debajo de él encuentras el objective principal que deseas ejecutar (generalmente el objective del “paquete” crea flasks) abre el menú contextual en él (hace clic derecho en una máquina con Windows) y habrá una opción “Ejecutar antes de ejecutar / depurar …” que puede seleccione y lo llevará de la mano desde allí. Realmente fácil.

En caso de que intente construir un jar con kotlin, debe crear una carpeta src/main/java y usar esta carpeta como una ubicación para la carpeta META-INF.

Ant y Maven son ampliamente utilizados. Prefiero Ant, siento que es más liviano y tú, el desarrollador, tienes más control. Algunos sugerirían que es su inconveniente 🙂