我有一个XML文件,需要从类路径中读取,以便在SBT中运行自定义runTask时,使用DBUnit为我的项目加载一些测试数据。如何在运行SBT runTask时访问资源?
XML文件位于/ src/main/resources中,并在构建过程中正确复制到/target/scala_2.8.1/class,但在尝试访问它时遇到MalformedURLException。
奇怪的是,当这个数据加载功能是我的Scala规格单元测试的一部分时,我可以访问该文件。
任何想法?
我有一个XML文件,需要从类路径中读取,以便在SBT中运行自定义runTask时,使用DBUnit为我的项目加载一些测试数据。如何在运行SBT runTask时访问资源?
XML文件位于/ src/main/resources中,并在构建过程中正确复制到/target/scala_2.8.1/class,但在尝试访问它时遇到MalformedURLException。
奇怪的是,当这个数据加载功能是我的Scala规格单元测试的一部分时,我可以访问该文件。
任何想法?
如果错误提示该URL格式错误,则可能是真的。 下面是我用它来从资源抢档代码测试期间:
def copyFileFromResource(source: String, dest: File) {
val in = getClass.getResourceAsStream(source)
val reader = new java.io.BufferedReader(new java.io.InputStreamReader(in))
val out = new java.io.PrintWriter(new java.io.FileWriter(dest))
var line: String = null
line = reader.readLine
while (line != null) {
out.println(line)
line = reader.readLine
}
in.close
out.flush
}
在我的情况下,问题是,我早在初始化器使用getClass.getResourceAsStream()。必须用Class.forName()明确指定类来解决它:Class.forName(<class name>).getResourceAsStream("/data.xml")
那么,你传递的URL是什么? –