如何在maven程序集中包含空目录?

Dav*_*ein 35 maven maven-assembly-plugin

在必须是常见的事件中,我需要在程序集中包含一个空目录.就我而言,它是logs /.

我在程序集描述符中尝试了不同的变体,如:

<fileSet>
  <directory>${basedir}/target</directory>
  <includes>
    <include>doesntexist</include>
  </includes>
  <outputDirectory>/logs</outputDirectory>
  <fileMode>0644</fileMode>
</fileSet>
Run Code Online (Sandbox Code Playgroud)

并且目录刚刚被修剪.

我试图排除,但仍然包括很多东西:

<fileSet>
  <directory>${basedir}/target</directory>
  <excludes>
    <exclude>*</exclude>
  </excludes>
  <outputDirectory>/logs</outputDirectory>
  <fileMode>0644</fileMode>
</fileSet>
Run Code Online (Sandbox Code Playgroud)

Chr*_*her 49

这对我来说总是有用的:

<fileSets>
  <fileSet>
    <directory>.</directory>
    <outputDirectory>logs</outputDirectory>
    <excludes>
      <exclude>*/**</exclude>
    </excludes>
  </fileSet>
</fileSets>
Run Code Online (Sandbox Code Playgroud)


Rag*_*ram 19

礼貌,这个SO答案和一些试验和错误,以下似乎对我有用...

<fileSet>
  <directory>src/main/assembly</directory>
  <outputDirectory>/logs</outputDirectory>
  <excludes>
    <exclude>*</exclude>
  </excludes>
</fileSet>
Run Code Online (Sandbox Code Playgroud)

关键似乎是确保<directory>标签指定有效/现有文件夹,该文件夹没有任何子文件夹.

  • 如果您的目录包含文件夹,则可以使用"<exclude>**/*</ exclude>"排除所有文件夹(以及所有文件). (5认同)