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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle:使用依赖关系jar中的资源作为源集相关的知识,希望对你有一定的参考价值。

假设我有一个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中包含这些文件?

答案

您可以将源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
        }
    }
}

以上是关于Gradle:使用依赖关系jar中的资源作为源集的主要内容,如果未能解决你的问题,请参考以下文章

Gradle:如何指定库的两个源集并在项目中添加依赖项

Gradle with Eclipse - 多个源集时不完整的.classpath

使用 gradle 解决代理存储库上的 ivy 依赖关系会导致资源丢失

如何从具有 gradle 依赖关系的代码创建一个 Android 库?

gradle - 如何在 jar 中声明 jar 的依赖关系

如何将 git 存储库中的 jar 文件添加为 gradle 中的依赖项?