这是我的 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/