Gradle子项目无法访问自己的资源

时间:2018-03-21 13:57:19

标签: java gradle

我有一个多项目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?

1 个答案:

答案 0 :(得分:0)

我在Gradle论坛上找到了解决方案。而不是尝试将资源作为文件获取,而是将其作为流获取并从流中读出。

B.class.getClassLoader().getResourceAsStream("B.resource");