with shade plugin files exclude example maven cross-platform maven-3 maven-assembly-plugin

shade - Advertencia sobre el complemento ensamblador Maven "El descriptor ensamblado contiene una referencia relativa al sistema de archivos-raĆ­z"



maven-jar-plugin (3)

La solución de trabajo es especificar el outputDirectory vacío:

<fileSets> <fileSet> <directory>${basedir}/src/main/resources</directory> <outputDirectory></outputDirectory> </fileSet> </fileSets>

A partir de alguna versión de plugin de ensamblaje maven compila la siguiente advertencia:

[ADVERTENCIA] El descriptor de ensamblaje contiene una referencia relativa del sistema de archivos, que no es compatible con plataformas cruzadas.

¿Hay alguna solución recomendada lista para usar para esto? Buscar en Google directamente me proporcionó mucha basura y ninguna ayuda real. Volver a verificar la ayuda del complemento de ensamblaje de Maven no me brindó ninguna respuesta, tal vez alguien más tenga una mejor habilidad de búsqueda y pueda ayudarlo.

ACTUALIZAR

Sí, esto es probablemente debido a Linux-like outputDirectory pero ¿cómo debería volver a escribir esto para ser portátil? Miró la documentación del complemento de ensamblaje y no encontró ninguna guía de portabilidad.

<fileSets> <fileSet> <directory>${basedir}/src/main/resources</directory> <outputDirectory>/</outputDirectory> </fileSet> </fileSets>


Tenga en cuenta que esto puede suceder en otras ubicaciones además de solo / . Las respuestas anteriores son correctas, pero no cubren este caso.

Busque algo como esto en su assembly.xml:

<fileSets> <fileSet> <directory>${basedir}/src/main/resources</directory> <outputDirectory>/lib</outputDirectory> <!-- <<< look for this --> </fileSet> </fileSets>

y cambiar a esto:

<fileSets> <fileSet> <directory>${basedir}/src/main/resources</directory> <outputDirectory>lib</outputDirectory> </fileSet> </fileSets>


Usar un elemento outputDirectory vacío funciona, pero no me sorprendería que alguien supusiera que podría eliminarse de forma segura.

Entonces, para ser más explícito, también puedes evitar la advertencia escribiendo:

<outputDirectory>${file.separator}</outputDirectory>