Gradle:将依赖项jar中的资源用作源集

时间:2018-08-29 15:42:52

标签: gradle dependencies source-sets

假设我有一个build.gradle

dependencies {
    compile 'com.group:some-app:1.0.1'
    compile 'com.group:some-app:1.0.1:sources'
}

sourceSets {
    main {
        other {
             srcDir 'src/main/other'
        }
    }
}

因此some-app-1.0.1-sources.jar中包含源文件-不是Java文件,而是可以从中生成Java的文件。

如何将这些文件包含在sourceSets中?

1 个答案:

答案 0 :(得分:2)

您可以将文件从源jar动态提取到目录中,然后将目录添加到源集中。

configurations {
   sourceJar
}

dependencies {
    compile 'com.group:some-app:1.0.1'
    sourceJar 'com.group:some-app:1.0.1:sources'
}

def generatedDir = "$build/other"
task extractFiles(type: Copy) {

    from (zipTree(configurations.sourceJar.singleFile)) 

    into generatedDir 
}

sourceSets {
    main {
        resources {
             srcDir generatedDir
        }
    }
}