Gradle:接受src/main/java文件夹中的资源文件

Gradle:接受src/main/java文件夹中的资源文件,gradle,Gradle,有没有办法说服Gradle接受src/main/java文件夹中的资源文件(如XML文件) 这将非常好,因为我需要将我的JavaFX XML文件放在那里…您可以通过如下操作定义gradle查找资源文件的位置: sourceSets { main { resources { srcDirs = ["src/main/java"] includes = ["**/*.fxml"] } } } 顾名思义,

有没有办法说服Gradle接受
src/main/java
文件夹中的资源文件(如XML文件)


这将非常好,因为我需要将我的JavaFX XML文件放在那里…

您可以通过如下操作定义gradle查找资源文件的位置:

sourceSets {
    main {
        resources {
            srcDirs = ["src/main/java"]
            includes = ["**/*.fxml"]
        }
    }
}

顾名思义,
src/main/java
用于java文件。虽然可以调整gradle的默认值以允许此文件夹中的资源,但您不应该这样做(在我看来)


我建议您坚持合理的约定,将xml等放在
src/main/resources
中。Maven和Gradle都遵循这个惯例。

你有什么问题?什么不起作用?这是因为部署的资源在某些地方不可用吗?为什么不使用将它们放在src/main/resources中的约定呢?你有没有看过可以重新定义资源子目录的位置?我不能帮你处理Gradle,但是为什么你需要把你的FXML放进去?文件在那里?@mipa JavaFX Scene Builder期望FXML文件与Controller类在同一文件夹中。@Mark_Fisher我不能,因为JavaFX Scene Builder期望FXML在那里。如果你能描述一下Gradle是如何不适合你的,我想这会很有帮助。事实上,这确实起到了作用。但是这是一个很好的解决问题的方法吗?这完全符合Gradle的最佳实践,所以如果你打算使用这种允许资源进入
src/main/java
(我个人不喜欢)的方法,我建议你使用
excludes=[“***/.java”]
而不是
includes=[“***/.fxml”]
绝对不是Gradle最佳实践!!!!!您应该使用非常明智的约定
src/main/resources
@LanceJava,那么谁错了:Gradle谁期望
src/main/resources
中有资源,Oracle谁期望控制器类的同一文件夹中有FXML文件?OP声明他们正在使用javaFX,这(显然)然后强制将fxml文件放置在与Java文件相同的路径中。他们似乎没有选择违反惯例。Gradle支持为这种情况定制资源的位置,不是吗?确定。。。如果一定要这样做,Gradle会让你这样做,如另一个答案所示。我自己从来没有使用过javaFX,但很惊讶它强制执行了这种约定。我知道答案反映了人们过去的想法,但要求我们按文件类型将文件划分到目录中是不明智的。这个惯例是荒谬的。相反,文件应该按其共同用途进行逻辑分组。