2011-10-26 3 views
30

W tym, co musi być wspólne wystąpienie, muszę dołączyć pusty katalog w zespole. W moim przypadku jest to dziennik /.Jak dołączyć pusty katalog do zestawu maven?

Próbowałem różne warianty w deskryptorze montażowych jak:

<fileSet> 
    <directory>${basedir}/target</directory> 
    <includes> 
    <include>doesntexist</include> 
    </includes> 
    <outputDirectory>/logs</outputDirectory> 
    <fileMode>0644</fileMode> 
</fileSet> 

a katalog prostu dostaje przycinane.

Próbowałem wyklucza również, ale że nadal zawiera wiele rzeczy:

<fileSet> 
    <directory>${basedir}/target</directory> 
    <excludes> 
    <exclude>*</exclude> 
    </excludes> 
    <outputDirectory>/logs</outputDirectory> 
    <fileMode>0644</fileMode> 
</fileSet> 

Odpowiedz

19

grzecznościowo this SO answer oraz niektórymi prób i błędów, następujące jeden wydaje się działać dla mnie ...

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

kluczem wydaje się być zapewnienie, że <directory> tag określa ważny istniejący folderu /, który nie ma żadnych podfolderów.

+5

Jeśli twój katalog zawiera foldery, możesz wykluczyć wszystkie (i wszystkie pliki) używając ' **/*'. – Leukipp

+0

To rozwiązanie nie działa dla mnie. Christopher pracował dobrze. – BlackEye

40

To zawsze działa na mnie:

<fileSets> 
    <fileSet> 
    <directory>.</directory> 
    <outputDirectory>logs</outputDirectory> 
    <excludes> 
     <exclude>*/**</exclude> 
    </excludes> 
    </fileSet> 
</fileSets> 
+0

dzięki za jego użyteczną próbkę. Ponadto, jeśli twój "katalog" wejściowy polega na podkatalogu budowania, nie zapomnij przesłać pustych katalogów również w kroku zasobów: cf.https: //stackoverflow.com/questions/2605747/maven-how-to-include- puste katalogi – boly38

1
<fileSets> 
    <fileSet> 
     <directory>./EMPTY_DIRECTORY_NAME</directory> 
     <outputDirectory>/REQUIRED_DIRECTORY_NAME in Assembly </outputDirectory> 
     <excludes> 
      <exclude>*/**</exclude> 
     </excludes> 
    </fileSet> 
</fileSets> 

np

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

W tym przypadku, chociaż istnieją pewne treści wewnątrz katalogu Logs, nie zostaną uwzględnione w zmontowanym binarnego w katalogu paszy.