java - exclude - maven shade plugin maven
Plugin de sombra Maven aƱadiendo dependency-reduced-pom.xml al directorio base (5)
El plugin maven shade está creando un archivo llamado dependency-reduced-pom.xml y también artifactname-shaded.jar y colocándolos en el directorio base.
¿Es esto un error? Debe estar en el directorio de destino. Cualquier solución?
Basado en la respuesta de bmargulies y su comentario en Xv. En respuesta, decidí configurar el POM con dependencia reducida para enviar a target/
, que ya se ha ignorado en mi VCS.
Para hacer eso, acabo de agregar el elemento dependencyReducedPomLocation
elemento de configuration
del complemento, es decir,
<configuration>
<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
(...)
</configuration>
Consulte https://issues.apache.org/jira/browse/MSHADE-121 , y también https://issues.apache.org/jira/browse/MSHADE-124 .
Existe una opción para mover el drp a otro lugar, pero puede que no te gusten las consecuencias.
Estás equivocado sobre el frasco sombreado, siempre termina en el objetivo / a menos que lo muevas a otra parte.
Podría usar una versión anterior del complemento. La versión 1.7 del plugin maven-shade escribe en / target.
Desde la versión 1.7.1, pom.xml con dependencia reducida se escribe en basedir. Consulte el problema MSHADE-124 por algunos motivos por los que se hizo y cuáles son las consecuencias. Si intenta configurar depencyReducedPomLocation , es probable que tenga problemas para generar el sitio - tema abierto MSHADE-145 .
la documentación en http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html es incorrecta cuando dice:
createDependencyReducedPom boolean: marca si se debe generar un POM simplificado para el artefacto sombreado. Si se establece en verdadero, las dependencias que se han incluido en el archivo JAR de uber se eliminarán de la sección del POM generado. El POM reducido se denominará dependency-reduced-pom.xml y se almacena en el mismo directorio que el artefacto sombreado. A menos que también especifique depencyReducedPomLocation, el complemento creará un archivo temporal denominado dependency-reduced-pom.xml en la base de proyectos. El valor predeterminado es: verdadero.
el archivo dependence-reduced-pom.xml no se almacena en el mismo directorio que el artefacto sombreado (directorio de destino) ... de hecho se genera en el directorio base, no en el destino
Puede evitar que se cree estableciendo createDependencyReducedPom
en false.
p.ej
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven-shade-plugin.version}</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
....
....
</plugin>