【发布时间】:2014-02-14 10:28:28
【问题描述】:
在我的一个项目中,我将资源存储在 /src/test/resources(典型的 maven 目录结构)中。存储在项目中的实用程序类正在使用这些资源。
实用程序类本身正被其他项目使用(其他项目依赖于这个)。我会这样访问资源:
final InputStream inputStreamDobs =
ClassLoader.class.getResourceAsStream("/dbunit/clear_db.xml");
但由于我在不同的项目中使用它,所以路径不正确 - 它与 current project that is being built/tested 相关,而不是实用程序类和资源所在的路径。
有没有想过如何解决这个问题?
我需要避免使用绝对路径 - 希望有一种方法可以定义实用程序类的相对路径。
我也不想在多个项目中复制资源。干杯。
编辑: 为了给出上下文,我在 XML 文件中定义了需要在集成测试后清除的表(清除整个数据库模式)。集成测试位于多个项目中,但清晰的脚本和资源文件对所有项目都是相同的,并且位于共同的父项目中。
EDIT2:
额外问题:我想访问需要从多个其他项目的 XML 文件访问的常见 DTD 文件(我们称之为tables.dtd)。 (它将位于共同的父项目中)。
目前我将它复制到多个项目中,我使用指令从 XML 中引用它:
<!DOCTYPE dataset SYSTEM "src/test/resources/dbunit/dobs.dtd">
如何将其指向不同项目中的文件?
【问题讨论】:
标签: java maven resources dbunit