在 Maven JAR 包中包含文件

Dua*_*man 3 java jar maven

我有一个具有以下结构的 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
Run Code Online (Sandbox Code Playgroud)

我希望 maven jar 插件在构建 JAR 文件时打包在数据库文件夹中。我试过包括这里概述的:https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html,但它没有找到目录“../database”(或 ../../database OR ../../../database!),而且它现在不包含任何类或资源(以前包含它们)。

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

谢谢

dav*_*xxx 7

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

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

  • database 在标准目录中移动:src/main/resources

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

要做到后者,在 pom.xml 中添加build标签:

<resources>
     <resource>
       <directory>src/main/resources</directory>          
     </resource>
     <resource>
       <directory>database-resources</directory>
     </resource>
</resources>
Run Code Online (Sandbox Code Playgroud)

然后将database您想要打包的文件夹添加到database-resources.