2017-10-20 255 views
1

我想實現我的應用程序下面的分佈,而我下面this question爲導向Maven的,排除的資源文件夾從包裝罐子

dist/ 
|-- application-1.0.jar 
|-- conf/ 
    |-- application.properties 
    |-- log4j.properties 
|-- lib/ 
    |-- *.jar 

src/main/resources看起來像下面

resources/ 
|-- to.be.packaged.inside.jar 
|-- to.be.packaged/ 
| |-- also 
|-- conf/ 
    |-- application.properties 
    |-- log4j.properties 

現在,我想排除整個文件夾被打包在JAR中(但放置在目標文件夾中)。

我嘗試了以下配置的maven-JAR-插件

<excludes> 
    <exclude>conf/*</exclude> 
</excludes> 

然而,這仍然包的JAR內的空conf文件夾。我如何排除的文件夾和內容

回答

2

隨着conf/*你只排除匹配的文件,它不匹配conf目錄。通過添加<exclude>conf</exclude>該目錄也將被排除。

但是,你應該問自己:這些文件是否應該在類路徑中可用?我期望conf目錄是項目根目錄(即<project-root>/conf),這也意味着更清潔的pom,因爲您不必排除資源。

+0

我只嘗試'conf',但在那種情況下沒有被排除在外。你是什​​麼意思的清潔pom? –

+0

請注意,所有目錄和文件都是經過評估的,因此只有conf是不夠的.'conf/application.properties'與exclude-pattern不匹配,因此將其包含在內。 WRT更清潔的POM,你不必添加自定義配置。當然,這只是幾行,但通過移動conf文件夾,配置也與classpath隔離,這在考慮外部配置時是一件好事。 –