详解build.gradle文件

Posted 佛系汤姆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解build.gradle文件相关的知识,希望对你有一定的参考价值。

前言

一般来说一个新创建的项目中,有两个 build.gradle 文件,一个是工程目录下的,一个是 app 目录下的,这两个 build.gradle 文件对 android Studio 项目的作用是非常重要的,接下来我们就新建一个项目来进行详细的分析,这里大家可以随便自己新建一个项目。

1、外层目录下的build.gradle文件


google()和jcenter():两处repositories的闭包中都声明了这两行配置,google仓库中包含的主要是Google自家的扩展依赖库,而jcenter仓库中包含大多是一些第三方的开源库。

Gradle插件和Kotlin插件:dependencies闭包中使用classpath声明的两个插件,因为Gradle并不是专门为构建Android项目而开发的,Java、C++等很多种项目也可以使用Gradle来构建,因此如果我们要使用它来构建Android项目,则需要生命com.android.tools.build:gradle:3.5.2这个插件,最后面的部分是版本号,通常和Android Studio的版本是相对应的。

2、app目录下的build.gradle文件


1、com.android.application:表示这是一个应用程序,com.android.library表示这是一个库模块。二者的区别:应用程序模块可以直接运行,库模块只能作为代码库依赖于别的应用程序模块来运行;

2、kotlin-android:如果想要试用Kotlin来开发Android项目,必须应用该插件;

3、kotlin-android-extensions:实现了一些实用的Kotlin扩展功能;
4、android闭包:在闭包中可以配置项目构建的各种属性;

4.1、compileSdkVersion:用于指定项目的编译版本,指定成29表示使用Android10.0系统的SDK编译;

4.2、buildToolsVersion:用于指定项目构建工具的版本,目前最新的版本就是29.0.2,如果有更新的版本时,Android Studio会进行提示;

4.3、defaultConfig闭包:可以对项目的更多细节进行配置;

4.3.1、applicationId:每一个应用的唯一标志符,不能重复,默认会使用项目创建时使用的包名,可以修改;

4.3.2、minSdkVersion:指定项目最低兼容的Android系统版本,21表示最低兼容Android5.0;

4.3.3、targetSdkVersion:表示项目在该版本上已经做过充分的测试,系统将会为应用程序启用一些对应系统版本的最新的功能和特性;

4.3.4、versionCode:用于指定项目的版本号;

4.3.5、versionName:用于指定项目的版本名称;

4.3.6、testInstrumentationRunner:在当前项目中启用JUnit测试,可以为当前项目编写测试用例,以保证功能的正确性和稳定性;

4.4、buildType闭包:用于指定生成安装文件的相关配置,通常只会有两个子闭包,一个release,一个debug;

4.4.1、debug闭包:用于指定生成测试版安装文件的配置,可以忽略不写;

4.4.2、release闭包:用于指定生成正式版安装文件的配置;

4.4.2.1、minifyEnabled:指定是否对项目的代码进行混淆;

4.4.2.2、proguardFiles:指定混淆时使用的规则文件,这里指定的两个文件:

第一个proguard-android-optimize.txt是在/tools/proguard目录下,里面是所有项目通用的混淆规则;

第二个proguard-rules.pro是在当前项目的根目录下,里面可以编写当前项目特有的混淆规则(通过Android Studio直接运行项目生成的都是测试版安装文件);
5dependencies闭包指定当前项目所有的依赖关系:

Android Studio项目中一共有三种依赖方式

本地依赖:可以对本地的jar包或目录添加依赖关系,闭包中第一行implementation fileTree就是一个本地以来声明,表示将libs目录下所有的.jar后缀的文件都添加到项目的构建路径中;

库依赖:可以对项目中的模块添加依赖关系,基本格式是implementation project后面加上(‘:要依赖的库的名称’);

远程依赖:可以对jcenter仓库上的开源项目添加依赖关系,implementation是远程依赖声明,androidx.appcompat:appcompat:1.1.0就是一个标准的远程依赖库格式,其中androidx.appcompat是域名部分,用于和其他公司的库做区分,appcompat是工程名部分,用于和同一个公司的不同库做区分,1.1.0是版本号,用于和同一个库的不同版本区分,Gradle在构建项目时首先检查本地是否有该库的缓存,没有的话会自动联网下载,然后再添加到项目的构建路径中;

testImplementation和androidTestImplementation都是用于声明测试用例库的。

来源-作者:简书-陈饥饿
链接:https://www.jianshu.com/p/0e65f51e2ce7
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

怀着学习的态度给弄过来了

gradle项目中 build.gradle 配置文件详解(未完成)

build.gradle 示例

plugins 
    id 'org.springframework.boot' version '2.2.6.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'


group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories 
    mavenCentral()


dependencies 
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') 
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    


test 
    useJUnitPlatform()

各组件说明

标签list:

1)插件 plugins

plugins 
    id 'java'
    id 'application'

2)项目信息

group 'com.kepus'
version '1.0-SNAPSHOT'

3) jdk版本声明

//sourceCompatibility 为project实例的属性
sourceCompatibility = 1.8
targetCompatibility = 1.8

4) 仓库地址

//repositories是project一个方法,闭包作为参数
repositories 
    //本地仓库,地址是:D:/maven/maven_repositories/
    mavenLocal()
    
    //应该是maven私服,国内镜像地址
    maven
        url "http://maven.aliyun.com/nexus/content/groups/public"
    
    
    //远程仓库,地址是https://repo1.maven.org/maven2
    mavenCentral()

5)依赖配置 dependencies

dependencies 

    implementation 'org.springframework.boot:spring-boot-starter-web'
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    
    
    testImplementation('org.springframework.boot:spring-boot-starter-test') 
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    

6) plugin 块 和 buildscript 块 位置说明

需要注意的是,在 build.gradle 文件中,plugin 块 和 buildscript 块 ,必须作为 前两个块 存在,否则会报错的。

7)测试

test 
    useJUnitPlatform()

以上是关于详解build.gradle文件的主要内容,如果未能解决你的问题,请参考以下文章

详解Android中的build.gradle文件

Android Studio build.gradle详解

Android Studio build.gradle详解

gradle中的build script详解

Android Studio 中build.gradle文件的详细解析

Android 根目录下和应用目录下的build.gradle的详解,以及groovy语法的讲解