gradle三个级别和仓库管理

2020-08-03  本文已影响0人  明静悟

gradle三个级别和仓库管理

gradle在android开发中是首选构建工具,Java开发中也是有日渐取代maven的趋势。对gradle的学习理解是必须的,今天以gradle在android开发中为例做一个介绍,要了解gradle的三个级别,以及国内如果无法使用仓库应该怎么办。了解了gradle的三个级别后,对后续gradle构建出现问题,你应该从那个方向着手处理会有很大帮助

gradle.png

gradle 项目总体分为3个级别。

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
    }
}

这里要注意:

gradle 插件级别:这个级别面向的是不同的的项目,比如:java,android等。下面举个例子:
plugins {
   id 'java'
}
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 是收费的,回头单独说。瞎说第一种情况:使用国内源,下面贴出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的三个级别,对其有了解后,当项目编译失败时可以​首先明确到时那个级别出的问题。这里说一些基本经验​

欢迎关注,转发
欢迎关注,转发
欢迎关注,转发

微信公众号.jpg
上一篇下一篇

猜你喜欢

热点阅读