Gradle ShadowJar 与其他 SourceSet 资源

ant*_*son 4 gradle gradle-shadow-plugin

我正在使用 ShadowJar Gradle 插件构建一个 Jar,其中包含目录中的所有源文件 src/main/java和目录中的其他 Jar 文件lib,并且工作正常。我需要的是另一个 ShadowJar 任务,该devShadowJar任务不会在src/main/resources文件夹中提取 JSON 文件,而是在文件夹中提取 JSON 文件src/dev/resources

我将其添加到build.gradle文件中以定义dev源集:

sourceSets {
    dev
}
Run Code Online (Sandbox Code Playgroud)

但现在我不确定如何创建一个devShadowJar任务来使用devJSON 资源而不是位于src/main/resources.

小智 5

尝试解决这个问题:

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

task devShadowJar(type: ShadowJar) {
    zip64 true
    from './build/classes/java/main'
    from project.configurations.compile
    from './src/dev/resources' // or wherever the resources and up under ./build
}
Run Code Online (Sandbox Code Playgroud)