在 Java Gradle 项目中设置资源文件夹

2022-09-04 22:50:46

我正在尝试设置一个Gradle Java项目,但由于某种原因,我似乎无法在构建中注册资源文件夹。每当我尝试写入文件时,它都会写入项目根目录,而不是资源文件夹。

我的项目目录如下:

  • 来源
    • 主要
      • 爪哇岛
      • 资源

这是我的 build.gradle 文件

apply plugin: 'java'
apply plugin: 'application'

repositories {
        mavenCentral()
}

mainClassName='Test'


sourceSets {
        main {
                java {
                        srcDirs= ["src/main/java"]
                }
                resources {
                        srcDirs= ["src/main/resources"]
                }
        }
}

这是我的测试.java,我正在使用它来查看我是否可以访问资源文件夹

import java.io.*;

public class Test {

        public static void main(String[] args) throws Exception {

                FileWriter writer = new FileWriter(new File("Test.txt"));
                writer.write("Test");
                writer.close();

        }

}

答案 1

可以从系统属性 中检索当前目录。例如.user.dirSystem.getProperty("user.dir")

资源目录与工作目录不同,工作目录是从工作目录执行应用程序的目录。资源目录主要用于存储运行时之前创建的文件,以便在运行时可以访问它们。它不应在运行时写入。这就是为什么当您在Gradle中设置资源路径时,它不会将当前工作目录设置为资源路径。

您仍然可以做自己想做的事情,但必须写信给 。我知道有时在开发应用程序时,您会希望能够写入资源文件夹。但请注意,当应用程序在野外运行时,您不会期望写入资源文件夹,特别是因为它通常位于JAR文件中。./src/main/resources/Test.txt


答案 2

推荐