Java:如何从其他模块读取文件?

我有一个包含多个Maven模块的项目

project/pom.xml

/external_services/pom.xml

/ifs/pom.xml

/src/test/java/

/MockIFSClient.java

/IFSClientTest.java

/src/test/java/resources/sample.json

/inventory/pom.xml

/business/pom.xml

/src/main/java/InventorySummary.java

/services/pom.xml

/src/main/java/InventorySummaryResource.java

/src/main/test/InventorySummaryResourceTest.java

访问sample.json

try {

inventoryPriceDetails = mapper.readValue(new File(getClass().getResource("/getInventoryAndPriceResponse.json").getPath()), new TypeReference<List<InventoryPriceDetail>>() {

});

} catch (final IOException e) {

throw new RuntimeException("could not read resource :" + e.getMessage());

}

因此 运行鳍,因为它们在同一包中。

尝试访问相同代码的

InventorySummaryResourceTest调用MockIFSClient,但现在失败,因为

could not read resource :file:/Users/harith/IdeaProjects/inventory_api/external_services/ifs/target/ifs-1.0-SNAPSHOT-tests.jar!/sample.json (No such file or directory)

具有以下依赖性

<dependency>

<groupId>com.org.project.external_services</groupId>

<artifactId>ifs</artifactId>

<version>${project.version}</version>

<type>test-jar</type>

<scope>test</scope>

</dependency>

我要做出什么改变

new File(getClass().getResource("/getInventoryAndPriceResponse.json").getPath())

这样也可以从不同的模块访问它

回答:

这个答案帮助我正确了

如何从Java中的类路径真正读取文本文件

我将代码更改为

inventoryPriceDetails = mapper.readValue(getClass().getResourceAsStream("/getInventoryAndPriceResponse.json"), new TypeReference<List<InventoryPriceDetail>>() {});

以上是 Java:如何从其他模块读取文件? 的全部内容, 来源链接: utcz.com/qa/425106.html

回到顶部