gradle 构建期间使用不同方法进行资源合并
Resource merging during gradle builds with different approaches
正如我们所知,有两种方法可以为每个 productFlavor
或 buildType
创建单独的 res
目录。
第一种方法 是在 src
文件夹下设置单独的目录,例如src\flavor1\res
、src\flavor2\res
等
第二种方法 是在 build.gradle
like
中指定 sourceSets
下的 res
目录
sourceSets {
main {
res.srcDirs = ['res']
}
dev {
res.srcDirs = ['res-dev']
}
}
我确定资源合并将在第一种方法中发生,并且将从main
' s sourceSet.
问题是关于上面的第二种方法。
资源合并的方式是否与使用单独文件夹的第一种方法相同?在这里,我明确要分配一个单独的目录。对于在指定目录下找不到的资源,是否仍然回退到main?
我问这个是因为 THIS LINK on http://tools.android.com/ 中的示例在文章末尾显示 'src/main/res'
被显式添加如下:
android.sourceSets {
main.res.srcDirs = ['src/main/res', 'src/main/res2']
}
有没有人这样做并且知道如果我只提供附加目录而不是 main 作为附加目录,资源合并是否仍然会发生?它会因为缺少资源而回退到主目录吗?
好的,我自己尝试了上述每种情况。调查结果如下:
- 无需指定
src\main\res
目录。回退发生在主 res 目录的两种方法中。
- 这对
res
和 assets
文件夹都非常有效。而且我认为它对其他文件夹也将完全相同。我不需要那些所以没试过。但是,我想不出有什么理由可以让 res
和 assets
文件夹正常工作。
因此,它按预期工作。
正如我们所知,有两种方法可以为每个 productFlavor
或 buildType
创建单独的 res
目录。
第一种方法 是在 src
文件夹下设置单独的目录,例如src\flavor1\res
、src\flavor2\res
等
第二种方法 是在 build.gradle
like
sourceSets
下的 res
目录
sourceSets {
main {
res.srcDirs = ['res']
}
dev {
res.srcDirs = ['res-dev']
}
}
我确定资源合并将在第一种方法中发生,并且将从main
' s sourceSet.
问题是关于上面的第二种方法。
资源合并的方式是否与使用单独文件夹的第一种方法相同?在这里,我明确要分配一个单独的目录。对于在指定目录下找不到的资源,是否仍然回退到main?
我问这个是因为 THIS LINK on http://tools.android.com/ 中的示例在文章末尾显示 'src/main/res'
被显式添加如下:
android.sourceSets { main.res.srcDirs = ['src/main/res', 'src/main/res2'] }
有没有人这样做并且知道如果我只提供附加目录而不是 main 作为附加目录,资源合并是否仍然会发生?它会因为缺少资源而回退到主目录吗?
好的,我自己尝试了上述每种情况。调查结果如下:
- 无需指定
src\main\res
目录。回退发生在主 res 目录的两种方法中。 - 这对
res
和assets
文件夹都非常有效。而且我认为它对其他文件夹也将完全相同。我不需要那些所以没试过。但是,我想不出有什么理由可以让res
和assets
文件夹正常工作。
因此,它按预期工作。