java - Maven Build no incluye el archivo.class en el jar
build-process executable-jar (1)
He revisado todo lo que puedo encontrar en StackOverflow y no pude encontrar una respuesta. Acabo de construir una nueva máquina y tengo proyectos que se compilaron y construyeron en instalaciones previas muy bien. Pero mi nueva máquina no lo hará. Todo parece estar construyendo correctamente (sin errores de compilación, las dependencias se incluyen correctamente), pero los archivos de clase reales (código que escribí) de mi proyecto no se incluyen en el archivo. Luego creé un proyecto helloWorld simple con un archivo POM mínimo para ver el problema que aún existe. Hice la compilación desde la línea de comandos para sacar el eclipse de la ecuación.
Código de clase
package com.zoverge.utils;
public class HelloWorld {
/**
* @param args
*/
public static void main(String[] args) {
String message = args[0];
System.out.println(message);
}
}
Mi archivo POM
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zoverge.utils</groupId>
<artifactId>helloworld</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<name>Hello World</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.java.version>1.6</project.build.java.version>
<org.apache.maven.plugins.maven-compiler-plugin.version>2.5.1</org.apache.maven.plugins.maven-compiler-plugin.version>
</properties>
<build>
<plugins>
<!-- Maven will compile our source java classes using the "project.build.java.version"
specified -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${org.apache.maven.plugins.maven-compiler-plugin.version}</version>
<configuration>
<source>${project.build.java.version}</source>
<target>${project.build.java.version}</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.zoverge.utils.HelloWorld</mainClass>
</manifest>
</archive>
<finalName>HelloWorld</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies/>
</project>
La compilación resultante produce 2 archivos jar (como se esperaba) helloworld-1.0.jar y HelloWorld.jar. Ninguno de los archivos jar contiene el archivo de clase compilado para HelloWorld.java. Creo que esto tiene que ser un problema con mi entorno porque este comportamiento es el mismo para otros proyectos que funcionaron bien en otras máquinas de desarrollo, pero parece que no puedo encontrar la diferencia. No tengo acceso a mi máquina dev anterior para comparar la configuración. Mi .m2 / setting.xml está básicamente vacío.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>${user.home}/.m2/repository</localRepository>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
Encontré mi problema. El problema era la estructura de carpetas. Maven asume a / src / main / java / structure. mi estructura era diferente y no estaba anulada en el POM.xml. coincidir con la ruta estándar o anular la ruta en el archivo POM.xml solucionó el problema.