java - Java中模块的Gradle根目录

标签 java gradle directory root

这是我的 Gradle 项目的结构:

- Game [parent]
 |- Server [module]
    -- Cache
 |- Client [module]

当我尝试使用以下方法从服务器 java 项目访问缓存时出现问题:

new File("/cache/cacheItem.dat");

Java 现在将在父文件夹(游戏)中查找缓存而不是服务器文件夹,我不知道如何使用 Gradle 更改服务器项目的根目录。我想知道如何将服务器的根目录更改为它自己的文件夹而不是父文件夹。

最佳答案

您不应依赖项目结构来访问文件,尤其是写入文件。如果您将要部署的应用程序打包到 JAR 中,那么这些路径中的任何一个都将不再可用于写入数据,甚至在开发过程中也可能会发生变化,正如您所注意到的。相反,您应该使缓存路径可配置,例如来自配置文件和/或命令行参数。这允许在部署时将缓存路径配置为外部位置,并在开发期间将缓存路径配置为某些临时路径。

如果您只需要对已知位置的文件进行读取访问,请将它们放在 src/main/resources 下(或用于测试的 src/test/resources 下)。按照惯例,Gradle 将此目录的内容与您的代码打包在一起,并且其中的所有内容都将在运行时、开发期间以及部署之后在根级别可用。要在 Java 中访问类路径上的此类资源,请使用 getClass().getResource("path/to/resource")

关于java - Java中模块的Gradle根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59574624/

相关文章:

java - 启动 Java 程序时 Eclim 忽略 native 库路径

java - 适用于非 IBM Windows 机器的 IBM SDK 7?

android - 以一种聪明的方式根据风格排除 JNI 库

shell - 如何从查找 "type d"中排除此/当前/点文件夹

git - 将 git 存储库的分支 check out 到子文件夹中?

Java2D 性能问题

java - 如何避免重复的 if 语句

java - 编译一个 groovy 脚本及其所有由 gradle 管理的依赖项,然后通过命令行将其作为独立应用程序运行

android - Artifact 组装后如何运行shell脚本?

python - Plone - 从 View 中的成员文件夹获取并列出对象