我有一个使用我们所有应用程序的库。
除了共享代码和资源,我想共享 gradle 代码。
每个应用程序的构造:
一些应用程序/
|
- 设置.gradle
- 构建.gradle
|
- mylib/
|
-build.gradle
- 其他库/
- 应用程序/
|
- 构建.gradle
现在我说的是根目录中的 build.gradle。一种定义 buildScript 闭包的依赖项和 allprojects{} 闭包。
我尝试使用来自:'./mylib/gradle_files/baseProject.gradle'
它可以工作,但是我的应用程序找不到 android 插件。由于某种原因,类路径依赖项没有注入(inject)到构建脚本中!
然后我尝试创建一个列表并使用它:
ext.projectBaseDependencies = ['com.android.tools.build:gradle:2.1.2', 'com.google.gms:google-services:3.0.0']
然后我在我的闭包中使用了这个列表:
apply from: './mylib/gradle_files/baseProject.gradle'
构建脚本 {
存储库{
中心()
}
依赖{
类路径 projectBaseDependencies
}
}
它不起作用,gradle 没有找到我在 baseProject.gradle 中定义的变量。
在评估 buildScript 闭包后,我有一种预感适用于作品:-(
有没有办法在所有应用程序之间共享 gradle 脚本代码?如果不申请,什么可以工作?在 afterEvaluate {} 子句中跳过配置和配置?
最佳答案
为什么不在公共(public)库中使用 Gradle 文件?如果您的公共(public)库包含 build.gradle
文件,您可以应用 android 库插件:
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
consumerProguardFiles "proguard-rules.pro"
}
}
dependencies {
// Your common dependencies here
}
然后你可以在你的项目的
settings.gradle
中包含这个库。 :include ':mobile'
project(':common').projectDir = new File("/Users/example/path/to/common")
然后将其添加到项目的
build.gradle
中的依赖项中:dependencies {
compile project(':common')
// Your other project dependencies
}
关于android - 在 android 基础项目 gradle 文件中运行通用 gradle 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37819971/