0

我将我的JavaFX/TornadoFX项目转换为一个 gradle 项目,我将所有资源都放在一个名为 resources 的中......一切正常,但是当我构建项目时,不包含任何源代码的包不要移动到 jar/build 文件夹。

由于我正在从包中加载我的 fxml、css 和字体文件,我需要以某种方式告诉 intellij 以包含这个包......

有任何想法吗?

我尝试创建将包标记为资源但没有任何成功

我还尝试创建一个 tornadoFX 项目,然后使用资源包复制文件......也没有工作。

我尝试在资源包中创建一个随机类,只有该类被复制到 jar/build 文件夹

有没有办法告诉 intellij 包含模块中的所有内容而不仅仅是源代码?

编辑:为了更好地理解我的问题,我添加了一些截图

这就是我的 src 目录的样子:

源文件

但是当我构建它时(它不包含资源包......):

输出文件

4

1 回答 1

2

约定是默认情况下,仅将源文件夹中的已编译类复制到构建文件夹中。您应该将要包含在构建中的任意文件放入src/main/resources.

要访问从应用程序的类路径放入的文件src/main/resources,您应该通过完整路径引用它们。所以src/main/resources/myfile.txt可以通过/myfile.txt.

您可以在资源文件夹下创建文件夹,以便src/main/resources/views/MyView.fxml可以通过/view/MyView.fxml.

如果镜像源文件的包结构,则只能使用相对路径访问给定视图或片段的资源。所以对于文件com.example.myapp.MyView,你可以创建src/main/resources/com/example/myapp/MyView.fxml. 它将为fxml代表自动获取,或通过resources["MyView.fxml"]从内部获取MyView

于 2017-05-20T12:18:28.087 回答