gradle三个级别和仓库管理
gradle在android开发中是首选构建工具,Java开发中也是有日渐取代maven的趋势。对gradle的学习理解是必须的,今天以gradle在android开发中为例做一个介绍,要了解gradle的三个级别,以及国内如果无法使用仓库应该怎么办。了解了gradle的三个级别后,对后续gradle构建出现问题,你应该从那个方向着手处理会有很大帮助。
gradle 项目总体分为3个级别。
- gradle级别:最高级别,不针对项目类型和项目
- gradle插件级别:针对不同的项目类型,比如:java和android
- gradle module级别:具体项目,这个有开发者自己配置
gradle 级别
gradle级别,是gradle官方提供的总的构建工具。不针对具体的项目。gradle的版本和本地存储路径在gradle-wrapper.properties中指定
#Fri Aug 02 15:04:58 CST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
gradle级别:是最高级,普通开发人员对其有基本的了解即可,比如:1.如何输出log;2.如何创建一个task等。
gradle插件级别
插件源的下载地址和版本指定
buildscript {
ext.kotlin_version = '1.3.41'
repositories {
//指定远程仓库
google()
jcenter()
}
dependencies {
//指定对远程仓库的依赖项
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
这里要注意:
- repositories :远程仓库名称,当然可以自定义
- dependencies :对远程仓库的依赖项
gradle 插件级别:这个级别面向的是不同的的项目,比如:java,android等。下面举个例子:
- java 项目
plugins {
id 'java'
}
- android 项目
apply plugin: 'com.android.application'
gradle module级别
module对远程仓库的指定
allprojects {
repositories {
google()
jcenter()
}
}
module指定依赖库
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
仓库管理
无论是编译仓库buildscript还是编码依赖仓库allprojects都需要指定依赖项远程仓库源和项目版本号。知道这一点后,ok那么远程的仓库国内经常性的链接不上,或者链接上了速度很慢。那么该如何解决这个问题呢?
- 使用国内镜像源,比如阿里的
- 还有就是使用artifactory
artifactory 是收费的,回头单独说。瞎说第一种情况:使用国内源,下面贴出groovy源码
buildscript {
//指定源
repositories {
maven {
url 'https://maven.aliyun.com/repository/central'
}
maven {
url 'https://maven.aliyun.com/repository/gradle-plugin'
}
maven {
url 'https://maven.aliyun.com/repository/jcenter'
}
maven {
url 'https://maven.aliyun.com/repository/google'
}
google()
jcenter()
}
//指定依赖项
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
}
}
gradle_icon.png
以上是gradle的三个级别,对其有了解后,当项目编译失败时可以首先明确到时那个级别出的问题。这里说一些基本经验
- gralde 级别:通常不会出现异常
- gradle plugin级别:最常见的问题就是依赖项同步问题,那么通过上面提到的仓库管理可以解决这个问题。
- gradle module级别:这个也经常遇见,这个需要开发者对plugin中提供的函数要了解,比如你是做android开发的,那么这就就要求你对plugin andorid中提供的函数会使用,每一个函数参数的含义要了解清楚。
欢迎关注,转发
欢迎关注,转发
欢迎关注,转发
网友评论