【发布时间】:2020-02-21 07:55:15
【问题描述】:
我有一个包含 10 多个库模块的 android 项目。这些模块中的每一个都包含许多所有模块共有的 gradle 代码。例如,我在所有 build.gradle 文件中使用来自 this answer 的 Javadoc 生成任务。
我将如何将该任务创建逻辑提取到一个函数中,该函数放在一个单独的 gradle 文件中,每个模块都可以“包含”该文件?我的所有模块的代码都是相同的,但显然取决于变体和项目。是否可以提取一个以项目为参数并返回该项目任务的函数?
我可能会倒退,因为我真的很讨厌 Gradle,但是任何导致我避免在 10 个不同文件(lib1/build.gradle、lib2/build.gradle、. ..) 会很有帮助!
事实上,更进一步,基本上我的整个 build.gradle 对于所有项目都是相同的,除了依赖项部分 - 有一个带有 buildTypes、compileOptions 等的 android 块,应用了一些插件(@ 987654325@等),并设置了一些工件参数。事实上,只有我的依赖完全不同。所以我想知道是否可以像这样完全提取一个公共文件(显然是伪代码):
<include common.gradle> // includes android block, common tasks, artifact setup etc.
dependencies {
api 'androidx.appcompat:appcompat:1.1.0'
api 'com.google.code.gson:gson:2.8.5'
...
}
【问题讨论】: