我有一个多模块 Maven 项目。在持久模块中,我有许多引用 DTD 的 XML 文件数据文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE myapp-data SYSTEM "myapp-data.dtd" >
<dataset>
.....omitted for brevity....
</dataset>
DTD 与 XML 文件存储在同一目录中,甚至 Eclipse 也将这些 XML 文件报告为有效。
但是,当我运行应用程序时,DBUnit FlatXMLDataSet 会抛出 FileNotFound 异常,因为它无法定位 DTD。它显然是在根项目目录(例如 myproject/)中寻找 DTD。我原以为它会在与 XML 文件本身相同的目录中查找 DTD(例如 myproject/persist/target/test-data)。
查看 DBUnit 源代码,它有这样的说法“相对 DOCTYPE uri 是从当前工作目录中解析的”。
有什么好的方法来解决这个问题?