Classpath根指向grails-app/views——如何修改?

Classpath root pointing to grails-app/views - how to amend?

我的目标是添加一些 Json 文件作为可从代码访问的项目资源。该解决方案必须在 IntelliJ 中运行并部署在 Tomcat 中。我不介意文件位于 grails-app/confsrc.

使用

之一获取我的class路径根

$MY_APP/grails-app/views

中解决

但是,尝试使用

从该根目录导航到 grails-app/src

结果:“java.io.FileNotFoundException:class 路径资源 [..] 无法解析为 URL,因为它不存在”。这可能是可以接受的,因为根就是根,我想。

  1. 如何将我的 class 路径扩展到 grails-app/views 之外的文件夹?
  2. 如何确保该解决方案在 IntelliJ 和 Tomcat 部署中都有效?

我正在使用 Gradle 3.5、Grails 3.3.11、Groovy 2.4.10。我在 IntelliJ 工作。到目前为止,使用 Gradle 视图重建项目没有帮助。项目设置包括

我一直在探索类似“如何将我的文件添加到 class 路径”问题的无数问题和答案,但到目前为止没有任何帮助。

正如前面评论中提到的,您应该将 JSON 文件放在 /src/main/resources 文件夹下。而且,您应该能够访问这些文件:

getClass().getResource("/example.json")

这是一个example application

@PuneetBehl 的回答帮助我意识到这与项目代码配置无关。是关于我的IDE的配置,也就是IntelliJ。您可以设置项目结构... --> 项目设置 --> 模块。在那里,右侧的“资源文件夹”列为:“conf”、“i18n”和“views”。我不知道为什么 IntelliJ 为路径选择“视图” "/.".

总之,够了:

  • 使用 Puneet 建议的语法:getClass().getResource("/myfolder/example.json")
  • 在我创建 grails-app/conf/myfolder/example.json
  • 之后