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

时间:2011-10-26 21:30:59

标签: maven maven-assembly-plugin

在必须发生的事情中,我需要在程序集中包含一个空目录。在我的例子中它是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>

3 个答案:

答案 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目录中的已组合二进制文件中。