当前位置: 首页 > 知识库问答 >
问题:

在Maven JAR包中包含文件

呼延钱明
2023-03-14

我有一个结构如下的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或../../../database!),而且它现在也不包含任何类或资源(以前也包含它们)。

那么在maven jar插件的配置中应该有什么呢?哪条路径是要包含的正确路径,我如何保存它之前包含的文件?

谢谢

共有1个答案

羿季
2023-03-14

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

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

>

  • 数据库移动到标准目录src/main/resources中。

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

    要执行后一个操作,请在pom.xml中添加build标记:

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

  •  类似资料:
    • 问题内容: 我正在为JEE5 Web服务编写单元测试。Web服务的行为取决于文件中设置的属性。因此,我想将我分成一个恒定的部分和一个在两次测试之间更改的部分。 为了查看是否确实可行,我尝试查看是否可以拆分该属性。根据一些说明,我发现了以下几点: web.xml fragment.xml 但是,我在文件上收到验证错误: 必须为元素类型“ web-app”声明属性“ version”。[7] 必须为元

    • 包文件包含的信息对你的项目文档是很有用的,比如该项目的名称和版本号。当JSDoc生成的文档的时候,可以自动使用项目中package.json文件中的信息。例如,默认的模板在文档中显示项目的名称和版本号。 有两种方法可以将package.json文件中的信息合并到您的文档: 1.在你的JavaScript文件的源路径中,包含package.json文件的路径。JSDoc将使用在源路径中发现的第一个p

    • SSI 指令为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法。ASP 只使用这一机制的 #include 指令。要在 .asp 文件中插入一个文件,使用下面的语法: <!--#include virtual | file ="filename"--> virtual 和 file 关键字指示用来包含该文件的路径的类型,filename 是您想包含的文件的路径和名称。 被包

    • 文件包含 可以使用source和.关键字,如: source ./function.sh . ./function.sh 在bash里,source和.是等效的,他们都是读入function.sh的内容并执行其内容(类似PHP里的include),为了更好的可移植性,推荐使用第二种写法。 包含一个文件和执行一个文件一样,也要写这个文件的路径,不能光写文件名,比如上述例子中: . ./functio

    • include 标签是模板开发中最最常用的标签之一,它可以在模板中包含其它模板的内容;用法如下: <include file='模版1,模版2,...' /> 请不要在include 的模板文件中使用模板布局或者模板继承 file 属性的定义规则: 以前台simlpeboot3主题为例: 控制器/操作 <include file="public/header" /> <!-- 以上表示包含当前

    • tc_include tc_include是前台模板包含文件的方法,用于替换原来的include的标签,实现更多功能 用法: <tc_include file="Public:nav"/> <!--加载的是当前模板的Public/nav.html--> <tc_include file="Public/nav"/> <!--加载的是当前模板的Public/nav.html--> <tc_inclu