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

时间:2016-12-24 17:27:35

标签: java gradle build.gradle

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

我的项目目录如下:

  • SRC
      • 的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"]
                }
        }
}

这是我的Test.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 个答案:

答案 0 :(得分:2)

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

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

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