- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个 Maven 项目 A 和 B。B 依赖于 A。
在 A 中,我在 src/main/resources
文件夹中有一个文件 someFile.txt
。
public class SomeAClass
{
public void someMethod()
{
final InputStream inputStream =
Thread.currentThread()
.getContextClassLoader()
.getResourceAsStream("someFile.txt");
final List<String> lines = IOUtils.readLines(inputStream);
...
}
}
在 A 的测试中,这工作得很好。
现在假设我想在 B 中使用相同的代码,包括从 src/main/resources/someFile.txt
读取数据的能力。
现在,从项目 B 调用 SomeAClass.someMethod()
会导致 NullPointerException,我怀疑这是因为找不到 src/main/resources/someFile.txt
。
如何更改获取src/main/resources/someFile.txt
的输入流的代码,以便它在 A 的单元测试和执行 B 时都可以工作(B 是 Spring Shell)基于控制台应用程序)?
最佳答案
您确定问题存在吗,因为我有类似的方法并且它工作正常。
这是我的第一次尝试
如果您在测试中使用 someFile.txt 作为资源(并且仅在此处,如果您在主项目中使用,请忽略该帖子),而不是使用 src/main/resources
,也许最好将该文件和其他文件放在 src/test/resources
中。
但是
如果您将这些测试文件放在 src/test/resources
中,请记住测试资源不包含在项目 Artifact 中,因此即使您在 pom 中包含依赖项,您也无法访问它们.
我做了什么(和你的一样)
创建新模块(测试资源)并将资源放入src/main/resources
中。该模块用作我需要测试范围的项目中的依赖项。但我使用的是ClassPathResource。
ClassPathResource resource = new ClassPathResource("the_file");
resource.getInputStream()
关于java - 如何从 Maven 依赖项目中读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28711606/
我是一名优秀的程序员,十分优秀!