Project根目录build.gradle:
改造前:
buildscript {
ext.coroutinesVersion = "1.4.2"
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
maven { url "https://www.jitpack.io" }
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigationVersion"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
maven { url "https://www.jitpack.io" }
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
为了gradle文件简介,新建config.gradle文件,里面包含maven仓库配置的三种方式
ext.count = "1"
//maven仓库配置文件方式1
ext.addRepos = { handler ->
handler.maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
handler.maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
handler.maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
handler.maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
handler.maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
handler.maven { url "https://www.jitpack.io" }
}
//maven仓库配置文件方式2
def addRepos1(RepositoryHandler handler) {
handler.maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
handler.maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
handler.maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
handler.maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
handler.maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
handler.maven { url "https://www.jitpack.io" }
}
ext.addRepos1 = this.&addRepos1
//maven仓库配置文件方式3
def addRepos3 = {
handler ->
handler.maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
handler.maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
handler.maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
handler.maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
handler.maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
handler.maven { url "https://www.jitpack.io" }
}
ext.addRepos3 = addRepos3
改造后:
buildscript {
//导入config.gradle
apply from: "config.gradle"
//config.gradle中maven仓储配置调用
addRepos(repositories)
addRepos1(repositories)
addRepos2(repositories)
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigationVersion"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
addRepos(repositories)
}
task clean(type: Delete) {
delete rootProject.buildDir
}
相比于以前代码更加精简。
推荐文章:
Gradle 系列 (一)、Gradle相关概念理解,Groovy基础
Gradle 系列(二)、技术探索
Gradle 系列 (三)、Gradle 插件开发
Gradle 系列 (四)、Gradle 插件实战应用