在必须发生的事情中,我需要在程序集中包含一个空目录。在我的例子中它是logs /.
我在汇编描述符中尝试了不同的变体,如:
<fileSet>
<directory>${basedir}/target</directory>
<includes>
<include>doesntexist</include>
</includes>
<outputDirectory>/logs</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
并且目录刚刚被修剪。
我也尝试排除,但仍然包含很多内容:
<fileSet>
<directory>${basedir}/target</directory>
<excludes>
<exclude>*</exclude>
</excludes>
<outputDirectory>/logs</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
答案 0 :(得分:45)
这对我来说总是有用的:
<fileSets>
<fileSet>
<directory>.</directory>
<outputDirectory>logs</outputDirectory>
<excludes>
<exclude>*/**</exclude>
</excludes>
</fileSet>
</fileSets>
答案 1 :(得分:19)
礼貌,this SO answer并且经过一些试验和错误,以下似乎对我有用......
<fileSet>
<directory>src/main/assembly</directory>
<outputDirectory>/logs</outputDirectory>
<excludes>
<exclude>*</exclude>
</excludes>
</fileSet>
关键似乎是确保<directory>
代码指定有效/现有文件夹,没有任何子文件夹。
答案 2 :(得分:1)
<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>
在这种情况下,即使Logs目录中有一些内容,它也不会包含在Feed目录中的已组合二进制文件中。