java - pom - maven run jar
Maven agregando mainClass en pom.xml con la ruta de la carpeta correcta (4)
Quiero obtener un archivo jar de trabajo con mi proyecto Maven.
La parte de compilación es:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.14</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>6.4.1</version>
</dependency>
</dependencies>
<configuration>
<consoleOutput>true</consoleOutput>
<configLocation>${basedir}/src/test/resources/checkstyle_swt1.xml</configLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptor>src/assembly/src.xml</descriptor>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addClasspath>true</addClasspath>
<mainClass>org.jis.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Entonces, mi problema ahora es que no sé cómo implementar la clase principal correctamente en mi pom.xml y luego en mi archivo jar. La estructura de la carpeta es: src / main / java / org / jis / Main.java pero si agrego la siguiente línea
<mainClass>src.main.java.org.jis.Main</mainClass>
no funciona
Gracias por adelantado
Básicamente, Maven es un marco que tiene una colección de complementos de Maven para cada acción realizada para construir un proyecto.
Cada fase de compilación se realiza mediante el correspondiente complemento de Maven utilizando la descripción del proyecto Modelo de objeto de proyecto (POM)
Por lo tanto, el complemento compilador de maven es el responsable de compilar el proyecto y no creará el archivo de manifiesto.
maven-jar-plugin es responsable de crear el archivo de manifiesto del proyecto.
En el caso, usted está utilizando la aplicación de arranque de primavera. Agregue el siguiente en pom.xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
Esto agregará la entrada de clase principal en el archivo MANIFEST.MF.
Primero, tu clase principal no incluye src/main/java
. Mira la declaración del paquete en ese archivo Java. Por ejemplo, package org.jis;
, luego agrega la clase principal a eso. En otras palabras, es solo org.jis.Main
.
Debe configurar el plugin maven-jar en lugar del plugin maven-compiler. El jar-plugin es el responsable de empaquetar y crear el manifiesto.MF.
Desde http://maven.apache.org/shared/maven-archiver/examples/classpath.html
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
...
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
...
</plugin>
</plugins>
</build>
Tienes que usar el nombre completo de tu clase principal:
<mainClass>org.jis.Main</mainClass>