我有一个多项目Gradle构建,其设置类似于:
A
-- src
-- main
-- java
-- A.java
B
-- src
-- main
-- java
-- B.java
-- resources
-- B.resource
A取决于B,B依赖于自己的资源B.resource。该应用程序使用gradle distZip
构建。在运行时,B无法访问自己的资源,因为它在.jar文件中压缩。
B用于访问其资源的命令是:
String res = Thread.currentThread().getContextClassLoader().
getResource("B.resource").getFile();
我知道Spring Web框架提供了ClassResourceLoader或类似的东西,但是我无法访问它。当A是应用程序而B是它的依赖时,B是否可以访问B.resource?
答案 0 :(得分:0)
我在Gradle论坛上找到了解决方案。而不是尝试将资源作为文件获取,而是将其作为流获取并从流中读出。
B.class.getClassLoader().getResourceAsStream("B.resource");