因此,我最近(部分)使用Gradle完成了一个Java项目。重要的是,该项目使用绝对路径来访问我的资源文件夹中的文件,因为这些文件将在制作JAR之后发生更改。当我使用Eclipse的“导出为可运行的JAR”功能时,我会得到一些可以正常工作的东西-将.jar文件放在主目录中就可以找到所有内容。但是,不使用Gradle的build函数,因为Gradle在.jar和资源之间添加了额外的层。为了演示,这是我的“普通”目录:
./program root directory
|_program.jar
|_resources
|_[actual resources]
这是Gradle创建的目录:
./build folder
|_libs
| |_program.jar
|_resources
|_main
|_[actual resources]
我想要从Gradle中获得的是:
./build folder
|_program.jar
|_resources
|_[actual resources]
是的,我可以在目录中手动移动资源和program.jar来实现此目的,但这感觉不对-这正是Gradle应该为我做的,对吧?我知道必须有某种方法来做到这一点。我就是不知道这就是为什么我要寻求帮助-我该怎么做?
答案 0 :(得分:0)
要更改资源的输出,请执行以下操作:
sourceSets.main.output.resourcesDir = "$buildDir/resources"
要更改JAR文件的放置位置,
jar {
// use destinationDir for Gradle < 5.1
destinationDirectory = buildDir
}
如果您的所有资源都是外部资源,则可能需要将其从JAR文件中排除:
jar {
include '**/*.class'
destinationDirectory = buildDir
}
这将仅包含.class
任务输入中的jar
个文件。您可以使用include
和exclude
选项自定义。