我正在使用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