java - teclado - intellij idea tutorial español
¿Cómo construir tarros desde IntelliJ correctamente? (13)
Tengo un proyecto que contiene un solo módulo y algunas dependencias. Me gustaría crear un jar, en un directorio separado, que contenga el módulo compilado. Además, me gustaría tener las dependencias presentes junto a mi módulo.
No importa cómo gire el proceso "build jar" de IntelliJ, la salida de mi módulo aparece vacía (además de un archivo META-INF)
Algunas de las otras respuestas son inútiles porque tan pronto como vuelva a importar el proyecto IDEA de IntelliJ desde el proyecto de Maven, todos los cambios se perderán.
La construcción del jar debe ser activada por una configuración de ejecución / depuración, no por la configuración del proyecto.
Jetbrains tiene una buena descripción de cómo puedes lograr esto aquí:
https://www.jetbrains.com/help/idea/maven.html
Desplácese hasta la sección llamada "Configuración de desencadenantes para los objetivos 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 impresionante tema de la déctula. ¡Ugh!)
Entonces, básicamente, lo que haces es abrir el panel "Proyectos de Maven", encontrar el proyecto de interés (en tu caso, el proyecto que construye tu jarra), debajo de él encontrarás el objetivo de Maven que deseas ejecutar. , (por lo general, el objetivo del "paquete" crea jars), abre el menú contextual en él (haz clic con el botón derecho en una máquina con Windows) y aparecerá la opción "Ejecutar antes de Ejecutar / Depurar ..." que puedes Selecciona y te llevará de la mano de allí. Realmente fácil.
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 :-)
Aquí se explica cómo crear un jar 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" donde se guardará el tarro. Para construirlo y guardarlo, haga lo siguiente:
Extraer al tarro objetivo
DE ACUERDO
Construir | Construir artefacto
Con Maven puedes usar este plugin:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>[path you class main]</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
En caso de que esté intentando construir un tarro con kotlin, necesita crear una carpeta src/main/java
y usar esta carpeta como ubicación para la carpeta META-INF.
Es posible que desee echar un vistazo a Maven ( http://maven.apache.org ). Puede usarlo como el proceso de compilación principal 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 desea que incluya todas las dependencias en un JAR autoejecutable que también sea trivial.
Si nunca has usado Maven antes, entonces quieres leer Better Builds With Maven .
Esto sigue siendo un problema en 2017, ¡espero que ayude a alguien por ahí! Encontré 2 posibilidades para crear jar-s de trabajo en IntelliJ 2017.2
1. Creando artefacto desde IntelliJ:
- Ir a la estructura del proyecto:
- Crear un nuevo artefacto:
- Seleccione la clase principal y asegúrese de cambiar la carpeta de manifiesto:
Tienes que cambiar el directorio de manifiesto:
<project folder>/src/main/java
Reemplace "java" con "recursos"
<project folder>/src/main/resources
Así es como debería verse:
Luego elige las dependencias en las que desea empaquetar EN su archivo jar o CERCA de su archivo jar
Para construir su artefacto vaya a construir artefactos y elija "reconstruir". Creará una carpeta "fuera" con su archivo jar y sus dependencias.
2. Usando Maven-Assembly-Plugin
Añadir sección de compilación al archivo pom
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<finalName>ServiceCreate</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.svt.optimoo.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
- Crear una nueva configuración de ejecución / depuración:
- Elija la aplicación:
- Rellene el formulario
- Agregue el objetivo de montaje "ensamblado: único" después de la compilación que se ejecutará en último
- Guárdalo, luego corre
Este procedimiento creará el archivo jar en la carpeta "destino"
Hace poco tuve este problema y creo que estos pasos son fáciles de seguir si faltan detalles en alguna solución o enlace anterior.
Cómo crear un .jar
usando IntelliJ IDEA 14.1.5:
- Archivo> Guardar todo.
- Ejecute el controlador o la clase con el método principal.
- Archivo> Estructura del proyecto.
- Seleccione la pestaña "Artefactos".
- Haga clic en el botón verde más cerca de la parte superior de la ventana.
- Seleccione JAR en el menú desplegable Agregar. Seleccione "Desde módulos con dependencias".
- Seleccione la clase principal.
- El botón de opción debe seleccionar "extraer al JAR de destino". Presiona OK.
- Marque la casilla "Build on make"
- Presione aplicar y OK.
- En el menú principal, seleccione la lista desplegable de compilación.
- Seleccione la opción construir artefactos.
Idea 8.1.3
El tarro está bien, ya que hay salida compilada en el directorio ''output'' (proyecto / salida / producción //)
Supongo que tienes que ejecutar ''make'' antes de construir jar
para dependencias simplemente marque "mostrar biblioteca" y elija lo que quiere.
Probablemente sea un poco tarde, pero logré resolverlo de esta manera -> abrir con winrar y eliminar ECLIPSEF.RSA y ECLIPSEF.SF en la carpeta META-INF, además poner "Main-class: 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á.
Si está trabajando en el proyecto spring / mvn, puede usar este comando:
mvn package -DskipTests
El archivo jar se guardará en el directorio de destino.
Si está utilizando bibliotecas de terceros con su proyecto o si tiene problemas para crear el archivo MANIFEST.MF correctamente, puede haber conflictos al ejecutar archivos JAR generados usando
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. Puede encontrar un maravilloso artículo de blog sobre este método aquí: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ Intenté los pasos mencionados allí y todo funcionó bien. ¡para mi!