Как включить пустой каталог в сборку maven? - PullRequest
33 голосов
/ 27 октября 2011

В том, что должно быть обычным явлением, мне нужно включить пустой каталог в сборку. В моем случае это логи /.

Я пробовал разные варианты дескриптора сборки, например:

<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 ]

45 голосов
/ 05 июня 2013

Это всегда работает для меня:

<fileSets>
  <fileSet>
    <directory>.</directory>
    <outputDirectory>logs</outputDirectory>
    <excludes>
      <exclude>*/**</exclude>
    </excludes>
  </fileSet>
</fileSets>
19 голосов
/ 27 октября 2011

Вежливость, этот SO-ответ и с некоторыми пробами и ошибками, следующий, кажется, работает для меня ...

<fileSet>
  <directory>src/main/assembly</directory>
  <outputDirectory>/logs</outputDirectory>
  <excludes>
    <exclude>*</exclude>
  </excludes>
</fileSet>

Кажется, ключ к тому, чтобы тег <directory> определял действительную / существующую папку , в которой нет подпапок .

1 голос
/ 07 августа 2015
<fileSets>
    <fileSet>
        <directory>./EMPTY_DIRECTORY_NAME</directory>
        <outputDirectory>/REQUIRED_DIRECTORY_NAME in Assembly </outputDirectory>
        <excludes>
            <exclude>*/**</exclude>
        </excludes>
    </fileSet>
</fileSets>

например,

<fileSets>
    <fileSet>
        <directory>./Logs</directory>
        <outputDirectory>/Feed</outputDirectory>
        <excludes>
          <exclude>*/**</exclude>
        </excludes>
    </fileSet>
</fileSets>

В этом случае, даже если в каталоге Logs есть некоторое содержимое, оно не будет включено в собранный двоичный файл в каталоге Feed.

...