java - mvn - maven version cmd
Maven genera archivos duplicados pom.xml y pom.properties en un jar (5)
Empaqueté mi aplicación Spring basada en Maven con:
mvn install-DskipTests -Peverything.
Y algo extraño surge. En META-INF del jar generado, encuentro archivos duplicados pom.xml y pom.properties. ¿Alguien puede explicarlo? Gracias.
Aquí se extrae pom.xml
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc.xyz</groupId>
<artifactId>migrate-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>migrate-app</name>
<url>http://maven.apache.org</url>
<dependencies>
..
</dependencies>
<profiles>
<profile>
<id>everything</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Salida para comando:
mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 15: 44: 56 + 0700) Inicio de Maven: C: / apache-maven-3.0.4 / bin .. Versión de Java: 1.6.0_30, proveedor: Sun Microsystems Inc . Java home: C: / Archivos de programa (x86) / Java / jdk1.6.0_30 / jre Configuración regional predeterminada: en_US, codificación de plataforma: Cp1252 Nombre de sistema operativo: "windows 7", versión: "6.1", arch: "x86", familia: "ventanas"
Añadir
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</plugin>
</plugins>
</build>
a tu pom.xml
No está seguro de lo que quiere decir por duplicate
pero el jar creado por maven viene con pom.xml
y pom.properties
en la carpeta META-INF
. Vea esta sección de la guía de iniciación de Maven.
Parece que este es un problema algo común que surge de un conflicto en Eclipse, especialmente con la integración m2e-wtp .
Algunas personas están indicando que se puede arreglar al incluir clean en la lista de objetivos a ejecutar, por ejemplo, mvn clean package
.
También intente actualizar su instalación de m2e y asegúrese de que no tenga instaladas varias versiones de m2e o m2eclipse (la versión pre-Indigo).
Algunas referencias a otras personas que enfrentan este problema:
Sé que este problema es un poco viejo, pero pensé que compartiría un poco de información oscura sobre este tema. Me encontré con el mismo problema, y descubrí que cuando ejecutaba Maven con Eclipse abierto, Y mis preferencias en el área de trabajo se configuraban para actualizar el área de trabajo con ganchos o sondeos nativos, el eclipse agregó los archivos extra pom.xml y pom.properties ! Cerrar eclipse o eliminar la opción de actualización del espacio de trabajo solucionó el problema por mí. Este fue difícil de rastrear, así que espero que alguien más se beneficie de esto.
Sigue con el trabajo de @ Dan:
Intenté tu solución y parece funcionar, a primera vista. Sin embargo, sólo está retrasando el fracaso final.
Parece que cada vez que se actualiza el espacio de trabajo, los archivos pom.xml y pom.properties se crean en el directorio / classes. Después de eso, cualquier objetivo posterior de "paquete" incluirá los archivos duplicados en el .jar y, por lo tanto, romperá cualquier firma posterior.
Si el sondeo está activado, fallas rápido. Si está apagado, puedes fallar en momentos arbitrarios en futuras compilaciones.