Gradle:使用依赖关系jar中的资源作为源集

Ste*_*art 7 dependencies gradle 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'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

如何将这些文件包含在内sourceSets

小智 4

您可以将文件从源 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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)