运行 SBT runTask 时如何访问资源?
我有一个 XML 文件,需要从类路径中读取该文件,以便在 SBT 中运行自定义 runTask 时使用 DBUnit 为我的项目加载一些测试数据。
XML 文件位于 /src/main/resources 中,并在构建期间正确复制到 /target/scala_2.8.1/classes 中,但在尝试访问它时出现 MalformedURLException 。
奇怪的是,当此数据加载功能是我的 Scala 规范单元测试的一部分时,我可以访问该文件。
有什么想法吗?
I've got an XML file that I need to read from the classpath in order to load some test data for my project with DBUnit when running a custom runTask in SBT.
The XML file is located in /src/main/resources and is copied properly to the /target/scala_2.8.1/classes during the build, but I get a MalformedURLException when trying to access it.
The weird thing is, I can access the file when this data loading functionality was part of my Scala specs unit tests.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
就我而言,问题是我在早期初始化程序中使用了 getClass.getResourceAsStream() 。必须使用 Class.forName() 显式指定类来解决此问题:Class.forName().getResourceAsStream("/data.xml")
In my case the problem was that I used getClass.getResourceAsStream() in early initialiser. Had to specify the class explicitly with Class.forName() to solve it:
Class.forName(<class name>).getResourceAsStream("/data.xml")
如果错误表明 URL 格式错误,则可能是真的。
这是我在测试期间用来从资源中获取文件的代码:
If the error is saying that the URL is malformed, it's probably true.
Here's a code I use to grab file from resource during test: