在Gradle项目中找不到Intellij资源



我有一个库(使用Gradle 7.4构建),其结构如下:

|
|- src
| -  main
| - - java
| - - resources

在这个库中,我有一个像这样加载资源文件的类:

var resource=this.getClass().getResource("sample.properties");

我的样本。属性文件位于src/main/resources

目录下当构建库时,Gradle将编译后的类放在build/classes/java/main下,资源放在build/resources/main下。

现在,我有一个应用程序,这是一个非gradle项目,有一个模块依赖于我的库。我的应用程序使用库,然后加载资源文件。现在,当我运行我的应用程序时,调试器声明它在build/classes/java/main/mypackage/sample.properties下查找资源文件。

但是,如前所述,资源位于build/resources/main下。
后面的资源为空。
问题:我的库如何相应地加载我的资源文件?

更新24.11:我忘了提到这在Eclipse中工作(因为它将类和资源复制到相同的目录),但不适用于Intellij,现在我正试图用Intellij IDEA解决这个问题。

如果使用你的库(需要一些资源文件)的父应用程序是使用普通java命令构建/编译/运行的非gradle/非maven项目,

您可以尝试在java命令

中将资源文件夹作为外部类路径(使用-cp选项)提供。
java -cp /path/to/resource application.jar

另一个选项是在库api(方法,类构造函数等)中显式地请求资源文件,这些文件需要由库的用户(父应用程序)提供。这将消除预定义路径上丢失文件的运行时崩溃。

最新更新