Scala 运行SBT runTask时如何访问资源?
我需要从类路径读取一个XML文件,以便在SBT中运行自定义runTask时使用DBUnit为我的项目加载一些测试数据 XML文件位于/src/main/resources中,并在构建过程中正确复制到/target/scala_2.8.1/classes,但在尝试访问它时,我遇到了一个错误的DorLexException 奇怪的是,当这个数据加载功能是Scala规范单元测试的一部分时,我可以访问这个文件Scala 运行SBT runTask时如何访问资源?,scala,resources,classpath,sbt,Scala,Resources,Classpath,Sbt,我需要从类路径读取一个XML文件,以便在SBT中运行自定义runTask时使用DBUnit为我的项目加载一些测试数据 XML文件位于/src/main/resources中,并在构建过程中正确复制到/target/scala_2.8.1/classes,但在尝试访问它时,我遇到了一个错误的DorLexException 奇怪的是,当这个数据加载功能是Scala规范单元测试的一部分时,我可以访问这个文件 有什么想法吗?如果错误是说URL格式不正确,那么可能是真的。 下面是我用来在测试期间从资源中获
有什么想法吗?如果错误是说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().getResourceAsStream(“/data.xml”)
那么,您要传递的URL是什么?