美文网首页
gradle三个级别和仓库管理

gradle三个级别和仓库管理

作者: 明静悟 | 来源:发表于2020-08-03 22:25 被阅读0次

gradle三个级别和仓库管理

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

gradle.png

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中提供的函数会使用,每一个函数参数的含义要了解清楚。

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

微信公众号.jpg

相关文章

网友评论

      本文标题:gradle三个级别和仓库管理

      本文链接:https://www.haomeiwen.com/subject/jhaprktx.html