SourceSet定义在gradle内部如何工作?

SourceSet定义在gradle内部如何工作?,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我想做一个概念证明。我想试试gradle是否支持来自其他项目(依赖项中没有引用)甚至外部路径的源集 要做到这一点,我想了解它通常如何与依赖项中定义的resourcesd一起工作。例如,假设我们定义: sourceSets { main.resources.srcDirs += '/src/flavour1/res' } 这个定义是什么意思?如何将这些资源复制到中间、生成、输出或tmp文件夹?有人知道吗 我试着从实验上找出答案,但我无法解释源集的定义在内部意味着什么 通过了解这一点,我将

我想做一个概念证明。我想试试gradle是否支持来自其他项目(依赖项中没有引用)甚至外部路径的源集

要做到这一点,我想了解它通常如何与依赖项中定义的resourcesd一起工作。例如,假设我们定义:

sourceSets {
    main.resources.srcDirs += '/src/flavour1/res'
}
这个定义是什么意思?如何将这些资源复制到中间、生成、输出或tmp文件夹?有人知道吗

我试着从实验上找出答案,但我无法解释源集的定义在内部意味着什么

通过了解这一点,我将能够测试来自另一个项目的资源是否也可以导入,例如

sourceSets {
    main.resources.srcDirs += '../../Lib/lib/src/main/assets'
}

更新:由于这个问题没有明确的答案,我在gradle的论坛上打开了一个bug请求。如下所示:

您是否已经能够从java源代码中执行
sourceSets{main.resources.srcDirs=project(Lib).sourceSets.main.srcDirs}
尝试使用此Lib资源,我希望在运行build.gradle之后这些资源可用。不,我尝试过,但它们不可用。我试过Lib和:Lib。在内部,我不知道。澄清Lib不作为依赖项包含。如果Lib作为依赖项包含,那么我认为它是可用的(这是常见的情况),您应该尽可能地坚持gradle源文件夹约定。如果Lib是一个依赖项,为什么不将其添加为依赖项呢。只对某些口味有依赖性。我在gradle的bug列表中打开了一个问题,因为我认为这是一件重要的事情。您如何拥有一个不清楚哪些路径可以添加到项目中的部署工具?您是否已经能够从java源代码中执行
sourceSets{main.resources.srcDirs=project(Lib).sourceSets.main.srcDirs}
,尝试使用这个Lib资源,我希望在运行build.gradle之后这些资源是可用的,不,我尝试了,但它们不可用。我试过Lib和:Lib。在内部,我不知道。澄清Lib不作为依赖项包含。如果Lib作为依赖项包含,那么我认为它是可用的(这是常见的情况),您应该尽可能地坚持gradle源文件夹约定。如果Lib是一个依赖项,为什么不将其添加为依赖项呢。只对某些口味有依赖性。我在gradle的bug列表中打开了一个问题,因为我认为这是一件重要的事情。您如何拥有一个不清楚哪些路径可以添加到项目中的部署工具?