2011-10-26 19 views
30

Yaygın bir olay olması gereken bir durumda, bir derlemeye boş bir dizin eklemem gerekir. Benim durumumda günlükleri /.Bir maven meclisinde boş bir dizini nasıl ekleyebilirim?

ben gibi montaj açıklayıcısında farklı varyasyonları denedim:

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

ve dizin sadece budanmış alır.

Ben de dışlamak için çalıştı, ama hala sürü dahil:

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

cevap

19

Nezaket, this SO answer ve bir iş için beni görünüyor aşağıdaki bazı deneme yanılma ile ...

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

anahtar <directory> etiketi alt klasörleri yok bir geçerli/mevcut klasörü belirtir sağlamak için gibi görünüyor.

+5

Dizininiz klasör içeriyorsa, tümünü (ve tüm dosyaları) ' **/*' kullanarak kaldırabilirsiniz. – Leukipp

+0

Bu çözüm benim için çalışmadı. Christopher iyi çalıştı. – BlackEye

40

Bu her zaman benim için çalışıyor:

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

Kullanışlı örneği için teşekkürler. Ayrıca, 'dizin' girişiniz bir yapı alt dizinine dayanıyorsa, boş dizinleri de kaynak adımda iletmeyi unutmayın: cf.https: //stackoverflow.com/questions/2605747/maven-how-to-include- boş dizinleri – boly38

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

örn Kayıtlar dizinindeki içindeki bazı içerik var olsa bile bu durumda

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

, bu Yem dizinde monte ikili dahil edilmeyecektir.

İlgili konular