plugin - ¿Cómo incluyo un directorio vacío en un ensamblaje de maven?
maven-jar-plugin (3)
En lo que debe ser una ocurrencia común, necesito incluir un directorio vacío en un ensamblaje. En mi caso, es logs /.
He intentado diferentes variaciones en el descriptor de ensamblaje como:
<fileSet>
<directory>${basedir}/target</directory>
<includes>
<include>doesntexist</include>
</includes>
<outputDirectory>/logs</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
y el directorio simplemente se borra.
Traté de excluir también, pero eso aún incluía muchas cosas:
<fileSet>
<directory>${basedir}/target</directory>
<excludes>
<exclude>*</exclude>
</excludes>
<outputDirectory>/logs</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
Cortesía, esta respuesta SO y con un poco de prueba y error, la siguiente parece funcionar para mí ...
<fileSet>
<directory>src/main/assembly</directory>
<outputDirectory>/logs</outputDirectory>
<excludes>
<exclude>*</exclude>
</excludes>
</fileSet>
La clave parece ser asegurar que la etiqueta <directory>
especifique una carpeta válida / existente , que no tiene subcarpetas .
Esto siempre funciona para mí:
<fileSets>
<fileSet>
<directory>.</directory>
<outputDirectory>logs</outputDirectory>
<excludes>
<exclude>*/**</exclude>
</excludes>
</fileSet>
</fileSets>
<fileSets>
<fileSet>
<directory>./EMPTY_DIRECTORY_NAME</directory>
<outputDirectory>/REQUIRED_DIRECTORY_NAME in Assembly </outputDirectory>
<excludes>
<exclude>*/**</exclude>
</excludes>
</fileSet>
</fileSets>
p.ej
<fileSets>
<fileSet>
<directory>./Logs</directory>
<outputDirectory>/Feed</outputDirectory>
<excludes>
<exclude>*/**</exclude>
</excludes>
</fileSet>
</fileSets>
En este caso, aunque haya algún contenido dentro del directorio Logs, no se incluirá en el binario ensamblado en el directorio Feed.