我有像
这样的模块结构external_services/pom.xml
ifs/pom.xml
src/main/java
src/main/java/resources
src/test/java
src/test/java/resources/sample.json
inventory/pom.xml
ifs/pom.xml
src/main/java
src/main/java/resources
src/test/java/MyTest.java
在此MyTest.java
我需要获得sample.json
,因为我希望在business/pom.xml
之间共享,因此我添加以下内容
<dependency>
<groupId>com.org.my_services.external_services</groupId>
<artifactId>ifs</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
所以现在当我运行测试时,我看到了
file:/Users/harith/.m2/repository/com/org/my_services/external_services/ifs/1.0-SNAPSHOT/ifs-1.0-SNAPSHOT-tests.jar!/sample.json (No such file or directory)
然而,当我看到jar ifs-1.0-SNAPSHOT-tests.jar
时,我在那里看到了
jar -tvf /Users/harith/.m2/repository/com/org/pryme_services/federated_services/ifs/1.0-SNAPSHOT/ifs-1.0-SNAPSHOT-tests.jar
0 Wed May 07 09:47:36 PDT 2014 META-INF/
131 Wed May 07 09:47:34 PDT 2014 META-INF/MANIFEST.MF
0 Wed May 07 09:47:34 PDT 2014 com/
0 Wed May 07 09:47:34 PDT 2014 com/org/
0 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/
0 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/external_services/
0 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/external_services/ifs/
0 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/external_services/ifs/configuration/
892 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/external_services/ifs/configuration/DevelopmentContextConfiguration.class
888 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/external_services/ifs/configuration/ProductionContextConfiguration.class
2381 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/external_services/ifs/IFSClientTest.class
1422 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/external_services/ifs/InventoryRESTClientTest.class
1033 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/external_services/ifs/MockIfsClient$1.class
2350 Wed May 07 09:47:34 PDT 2014 com/org/pryme_services/external_services/ifs/MockIfsClient.class
142315 Wed May 07 09:47:34 PDT 2014 sample.json // <-- here
0 Wed May 07 09:47:36 PDT 2014 META-INF/maven/
0 Wed May 07 09:47:36 PDT 2014 META-INF/maven/com.org.pryme_services.federated_services/
0 Wed May 07 09:47:36 PDT 2014 META-INF/maven/com.org.pryme_services.federated_services/ifs/
2391 Wed May 07 09:45:36 PDT 2014 META-INF/maven/com.org.pryme_services.federated_services/ifs/pom.xml
138 Wed May 07 09:47:34 PDT 2014 META-INF/maven/com.org.pryme_services.federated_services/ifs/pom.properties
在课堂上使用它的方式是
inventoryPriceDetails = mapper.readValue(new File(getClass().getResource("/getInventoryAndPrice.json").getPath()), new TypeReference<List<InventoryPriceDetail>>() {
});
我不确定我缺少什么,有人可以帮忙吗?
答案 0 :(得分:0)
有几件事:
1) external_services / pom.xml的 IFS / pom.xml的 的src /主/ JAVA 的src / main / JAVA /资源 的src /测试/ JAVA 的src /测试/ JAVA /资源/ sample.json
但是maven期待 external_services / pom.xml的 IFS / pom.xml的 的src /主/ JAVA 的src / main /资源 的src /测试/ JAVA 的src /测试/资源/ sample.json
&#34;资源&#34;平行于&#34; java&#34;。在你的情况下&#34;资源&#34;是一个包。
2)文件名为&#34; sample.json&#34;但是你要找&#34; getInventoryAndPrice.json&#34;
3)新文件在路径上不起作用。您需要getResourceAsStream()从jar中提取数据。 (如果您想使用路径,则需要使用nio类,而不是文件)