2017-10-20 256 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隔离,这在考虑外部配置时是一件好事。 –