默認情況下,在構建過程中,maven將刪除空目錄。
是否知道在pom中是否可以指定參數來指示maven在生成的target/test-classes文件夾中包含空目錄?Maven - 如何包含空目錄
回答
根據this ticket MRESOURCES-36,應該有一個<includeEmptyDirs>
元素,但只適用於Maven Resources Plugin 2.3。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<configuration>
<includeEmptyDirs>true</includeEmptyDirs>
</configuration>
</plugin>
Maven的版本,其中包括一箇舊版本的資源插件:
直到這個問題是固定的,這裏是我已經成功地使用一種變通方法。
將此插件元素添加到您的pom.xml
中的project/build/plugins
中,並更改mkdir任務中的目錄。對於多個目錄,您可以有多個
<mkdir>
元素。如果該目錄已被資源插件複製,mkdir
任務將不執行任何操作。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>create-empty-directory</id>
<phase>process-classes</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<mkdir dir="${basedir}/target/classes/empty" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
這最初來自於OpenEJB的項目openejb-standalone pom.xml
。
我們通常會通過在任何需要創建但在構建時沒有有用內容的目錄中包含一個空佔位符文件來解決此問題。
這也具有不允許空目錄的概念的文件格式(例如zip文件)仍將創建正確的目錄結構的優點。
爲什麼你需要在目標/測試類下的空文件夾?
另一方面,您可以使用程序集插件在zip/tar.gz文件中創建空文件夾。
只需創建在彙編描述符中引用了一個現有的文件夾(在這種情況下的src /主/資源/ bin中的條目......
<fileSet>
<directory>src/main/resources/bin</directory>
<outputDirectory>/logs</outputDirectory>
<directoryMode>0755</directoryMode>
<excludes>
<exclude>*</exclude>
</excludes>
</fileSet>
上述工程確定爲.tar.gz和zip文件當成文件如果你創建.tar.gz文件,只需要上面的目錄模式
第二種可能是在你的文件夾結構中創建一個包含在程序集插件中的空文件夾(如zip,tar.gz等)... BTW:zip,tar.gz允許空文件夾。
您獲得了我的+1,因爲我需要這種組裝技巧,但您爲什麼質疑OP的需求? – Superole 2012-04-10 09:51:48
我用Assembly插件像khmarbaise建議,但要得到它的工作,我需要使用Ant風格的排除,以確保沒有文件或目錄悄悄潛入檔案:
<excludes>
<exclude>**/*</exclude>
</excludes>
如果它不工作因爲你可以使用Maven資源插件2.7。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<includeEmptyDirs>true</includeEmptyDirs>
</configuration>
</plugin>
請爲OP添加信息 – JackWhiteIII 2015-06-29 12:59:20
這是什麼意思? – Belkasmi 2015-07-01 14:38:14
- 1. 用python setup.py包含空目錄sdist
- 2. 刪除包含非空子目錄和文件的目錄
- 3. 如何獲取wp包含目錄?
- 4. 如何在RecursiveDir中包含父目錄?
- 5. Rsync如何包含目錄但不包含文件?
- 6. IntelliJ包含一個包含在排除目錄中的目錄?
- 7. 如何複製包含子目錄的目錄?
- 8. 如何在Maven程序集的basedir中包含所有文件(不是目錄)
- 9. maven項目中未包含Maven項目的日誌依賴項
- 10. 包含空格的項目
- 11. 如何在包裝時使maven「添加目錄條目」?
- 12. 安裝R軟件包。包含目錄爲空。開發標題
- 13. 在Maven項目中包含SqlServerDriver
- 14. Servlet未包含在maven項目中
- 15. 在Maven項目中包含非Java源
- 16. 的Visual C++包含目錄
- 17. 在Bundle.config中包含目錄
- 18. 在Clion中包含目錄
- 19. 如何在Maven項目中包含用於CPLEX API的JavaDoc?
- 20. 如何在maven項目中包含共享對象文件
- 21. 如何在我的Maven項目中包含javax.servlet servlet-api 3.0.1?
- 22. 如何在我的Maven項目中包含Xtext生成器?
- 23. 如何從其他Maven項目中包含配置數據?
- 24. 如何在我的Maven項目中包含JPA 2.1功能?
- 25. 包含CMake項目依賴包含目錄與-isystem
- 26. Maven包含mockito jar
- 27. Maven包含父類
- 28. 用SharpZipLib打包空目錄
- 29. 如何從子目錄製作包含javascript文件的包
- 30. 如何在SCons中編譯包含子目錄的包?
尼斯(和你有我+1),但我忘了發表評論:也許澄清,2.3是資源插件的版本,而不是Maven的本身(和antrun解決方法是的發佈之前有用資源插件版本2.3) – 2010-04-09 12:56:25
@帕斯卡爾:你是對的,我更新了我的答案,以更好地反映你的評論。 – VonC 2010-04-09 14:41:26
我試過這個在'scr \ main \ webapp \'中的空文件夾,它不能與插件版本2.6(使用上面的第一種方法)一起工作。應該是? – Bizmarck 2013-12-02 15:58:03