在Maven JAR包中包含文件

时间:2017-11-13 16:43:06

标签: java maven jar

我有一个具有以下结构的maven项目:

project

-src
--main
---java
----(All my .java files are here in their packages)
---resource
----(All my resources are here)

-database (HSQLDB files)
--db.script
--db.properties
--db.data

-target
--Maven build directory

pom.xml

我希望maven jar插件在构建JAR文件时打包在数据库文件夹中。我已尝试按照此处所述进行包含:https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html,但它找不到目录“../database”(或../../database OR ../../../database! ),现在它也不包括任何类或资源(以前包括它们)。

那么我应该在maven jar插件的配置中有什么? 哪个是正确的包含路径,以及如何保留之前包含的文件?

由于

1 个答案:

答案 0 :(得分:0)

默认情况下,只有位于src/main/resources的资源才会添加到JAR中 您通过配置maven-jar-plugin尝试执行的操作仅定义要排除或包含在内置JAR中的文件集。
但是这些文件仍然必须位于Maven查找资源的资源文件夹中。

因此,您有两种方法可以解决您的要求:

  • 在标准目录中移动databasesrc/main/resources

  • 为资源指定两个resource个文件夹:

To do the latter,在pom.xml中添加build标记:

<resources>
     <resource>
       <directory>src/main/resources</directory>          
     </resource>
     <resource>
       <directory>database-resources</directory>
     </resource>
</resources>

然后在database

中添加您想要包的database-resources文件夹