我正在使用maven 2.1.0并拥有一个包含多个模块的项目。 实施例的模块:从maven junit中的依赖关系jar中加载文件
- SPR-资源
- SPR-共同
SPR-共同对SPR-资源的依赖
SPR-资源仅包含文件,没有类。
spr-common有一个需要从spr-resources jar中加载文件的junit。
我用:
String fileName = getClass().getResource("/jaskeyfile.3DES").getFile();
is = getClass().getClassLoader().getResourceAsStream(fileName);
is.read(data);
当我在的IntelliJ运行测试工作的,但是当我做MVN测试时,出现NullPointerException异常,当我尝试做阅读()就可以了。
这是怎么发生的?它应该从依赖读取文件就好了。
此外,在pom.xml的SPR-共同对SPR-资源依赖性(均与范围的测试,没有它试过)
编辑: 我也
getClass().getClassLoader().getResourceAsStream("/jaskeyfile.3DES");
试过,没有运气。
EDIT2: 给定的文件存在于生成的jar中,所以我猜它应该可以访问。
嗯,那很奇怪。你尝试了一个更简单的方法:`InputStream is = getClass()。getResourceAsStream(“/ java/pkg/with/your/file/filename.txt”);`? `spr-resources`依赖性是否真的在`pom.xml`文件中定义,而不仅仅是在你的IDE中?如果在CLASSPATH上找不到该资源,则返回的流为“null”。编辑:文件是否真的在`src/main/resources/java/pkg/with/your/file/filename.txt`目录下的`spr-resources`中? – 2010-12-07 11:31:52
如果您运行mvn测试,测试在本地运行在此特定模块上。如果你需要另一个模块spr-resource,你必须将它定义为测试依赖关系,否则你不会在你的测试用例中看到它。 – khmarbaise 2010-12-07 13:04:37