java - tutorial - ¿Cómo construir tarros desde IntelliJ correctamente?




manual intellij idea español pdf (9)

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.

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)


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 :-)


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.


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:

  1. Archivo> Guardar todo.
  2. Ejecute 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 en el menú desplegable Agregar. Seleccione "Desde módulos con dependencias".
  7. Seleccione la clase principal.
  8. El botón de opción debe seleccionar "extraer al JAR de destino". Presiona OK.
  9. Marque la casilla "Build on make"
  10. Presione aplicar y OK.
  11. En el menú principal, seleccione la lista desplegable de compilación.
  12. Seleccione la opción construir artefactos.

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

Archivo -> Estructura del proyecto


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á 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!





build-process