Java Maven,从打包的jar中排除资源文件夹
我正试图为我的应用程序实现以下发行版,并将其作为指南Java Maven,从打包的jar中排除资源文件夹,java,maven,jar,maven-assembly-plugin,maven-resources-plugin,Java,Maven,Jar,Maven Assembly Plugin,Maven Resources Plugin,我正试图为我的应用程序实现以下发行版,并将其作为指南 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 |--
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
现在,我想将整个conf文件夹从打包到JAR中排除(但放在目标文件夹中)
我尝试了以下配置来安装maven jar插件
形态/*
但是,这仍然在JAR中打包了一个空的conf文件夹。如何排除文件夹和内容?使用
conf/*
仅排除匹配的文件,它与conf
目录不匹配。通过添加conf
该目录也将被排除
但是,您应该问问自己:这些文件在类路径上是否可用?我希望conf目录是项目根目录中的一个目录(即
/conf
),这也意味着一个更干净的pom,因为您不必排除资源。我只尝试了conf
,但在这种情况下,没有排除任何内容。您所说的cleaner pom是什么意思?请注意,所有目录和文件都经过计算,因此仅计算conf是不够的。conf/application.properties
与排除模式不匹配,因此它被包括在内。对于cleaner pom,您不必添加自定义配置。当然,这只是几行,但是通过移动conf文件夹,配置也与类路径隔离,这在考虑外部化配置时是一件好事。@TuomasToivonen答案是,除了现有的排除之外,还需要添加第二个排除。因此,您将有两个排除项:conf/*
和conf
<excludes>
<exclude>conf/*</exclude>
</excludes>