Cómo construir frascos de IntelliJ correctamente?
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 al lado de mi módulo.
No importa cómo tuerza el proceso "build jar" de IntelliJ, la salida de mi módulo aparece vacía (además de un archivo META-INF).
12 answers
He Aquí cómo construir un frasco con IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
File -> Project Structure -> Project Settings -> Artifacts -> Click green plus sign -> Jar -> From modules with dependencies...
Lo anterior establece el "esqueleto" donde se guardará el frasco. Para construirlo y guardarlo, haga lo siguiente:
Extraer al tarro de destino
OK
Construir / Construir Artefacto
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-14 23:51:38
Recientemente tuve este problema y creo que estos pasos son fáciles de seguir si falta 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"De módulos con dependencias"
- Seleccionar clase principal.
- El botón de opción debe seleccionar "extraer al TARRO de destino."Pulse OK.
- Marque la casilla "Construir en hacer"
- Pulse aplicar y Aceptar.
- En el menú principal, selecciona el menú desplegable build.
- Seleccione la opción construir artefactos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-19 17:09:45
Esto sigue siendo un problema en 2017, espero que ayude a alguien por ahí! He encontrado 2 posibilidades para crear jar-s de trabajo bajo IntelliJ 2017.2
1. Crear artefacto desde IntelliJ:
- Ir a la estructura del proyecto:
- Crear un nuevo artefacto:
- Seleccione la clase principal y asegúrese de cambiar el manifiesto carpeta:
Tienes que cambiar el directorio del manifiesto:
<project folder>\src\main\java
Sustitúyase "java" por "recursos"
<project folder>\src\main\resources
Así es como debería verse:
-
A continuación, elija las dependencias 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 " out " con su archivo jar y su dependencia.
2. Usando maven-assembly-plugin
Agregar la 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 maven" assembly:single " después de la compilación a ejecutar last
- Guárdelo, luego ejecute
Este procedimiento creará el archivo jar bajo la carpeta "destino"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-15 08:45:23
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-08 17:40:33
Probablemente sea un poco tarde, pero me las arreglé para resolverlo de esta manera - > abre con winrar y elimina ECLIPSEF.RSA y ECLIPSEF.SF en la carpeta META-INF, además ponga " 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á.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-06 09:58:21
Idea 8.1.3
Jar está bien, ya que hay salida compilada en el directorio 'output' (project/out/production//)
Supongo que tienes que ejecutar 'make' antes de construir jar
Para las dependencias simplemente marque "mostrar biblioteca" y elija lo que desee.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-04 21:15:17
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 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 es trivial.
Si nunca has usado Maven antes, entonces quieres leer Mejores Compilaciones con Maven.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-30 09:16:54
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>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-07 09:29:57
Si está utilizando bibliotecas de terceros con su proyecto o si tiene problemas con la creación de MANIFIESTO.Archivo MF correctamente, puede haber conflictos al ejecutar archivos JAR generados mediante
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 mí!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-08 19:10:00
Algunas de las otras respuestas son inútiles porque tan pronto como vuelva a importar el proyecto IntelliJ IDEA desde el proyecto maven, todos los cambios se perderán.
La construcción del jar necesita 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 puede lograr esto aquí:
Https://www.jetbrains.com/help/idea/maven.html
Desplácese hacia abajo hasta la sección llamada "Configuración de disparadores para Maven objetivo".
(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 darcula. Ugh!)
Así que, básicamente, lo que haces es abrir el panel "Proyectos Maven", encuentras el proyecto de interés, (en tu caso, el proyecto que construye tu jar,) debajo de él encuentras el objetivo maven que quieres ejecutar, (generalmente el objetivo" paquete " crea jars,) abres el menú contextual en él, (haga clic con el botón derecho en una máquina Windows,) y habrá un " Ejecutar antes de Ejecutar / Depurar..."opción que puedes seleccionar y te llevará de la mano desde allí. Muy fácil.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-25 17:53:19
En caso de que esté tratando de construir un jar con kotlin, debe crear una carpeta src/main/java
y usar esta carpeta como ubicación para la carpeta META-INF.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-07 13:57:41
Ant y Maven son ampliamente utilizados. Prefiero Ant, siento que es más ligero y que el desarrollador tiene más control. Algunos sugerirían que esa es su desventaja: -)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-03 07:41:38