Reputation: 1420
In what must be a common occurence, I need to include an empty directory in an assembly. In my case it is logs/.
I've tried different variations in the assembly descriptor like:
<fileSet>
<directory>${basedir}/target</directory>
<includes>
<include>doesntexist</include>
</includes>
<outputDirectory>/logs</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
and the directory just gets pruned.
I tried to exclude as well, but that still included lots of stuff:
<fileSet>
<directory>${basedir}/target</directory>
<excludes>
<exclude>*</exclude>
</excludes>
<outputDirectory>/logs</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
Upvotes: 38
Views: 23311
Reputation: 2512
This always works for me:
<fileSets>
<fileSet>
<directory>.</directory>
<outputDirectory>logs</outputDirectory>
<excludes>
<exclude>*/**</exclude>
</excludes>
</fileSet>
</fileSets>
Upvotes: 52
Reputation: 11
<fileSets>
<fileSet>
<directory>./EMPTY_DIRECTORY_NAME</directory>
<outputDirectory>/REQUIRED_DIRECTORY_NAME in Assembly </outputDirectory>
<excludes>
<exclude>*/**</exclude>
</excludes>
</fileSet>
</fileSets>
e.g.
<fileSets>
<fileSet>
<directory>./Logs</directory>
<outputDirectory>/Feed</outputDirectory>
<excludes>
<exclude>*/**</exclude>
</excludes>
</fileSet>
</fileSets>
In this case even though there are some content inside Logs directory, it will not be included in assembled binary in Feed directory.
Upvotes: 1
Reputation: 52635
Courtesy, this SO answer and with some trial and error, the following one seems to work for me...
<fileSet>
<directory>src/main/assembly</directory>
<outputDirectory>/logs</outputDirectory>
<excludes>
<exclude>*</exclude>
</excludes>
</fileSet>
The key seems to be to ensure that <directory>
tag specifies a valid/existing folder, which does not have any subfolders.
Upvotes: 19