首页 > 自考资讯 > 自考知识

gradle基础,gradle ext 理解

头条共创 2024-06-27

Gradle 的基础知识和理解

日期: 2016-12-09 16:39:53

我们相信我们的构建系统是Java (JVM) 领域构建技术的突破。

Gradle是Java编译技术领域的一项突破。

12d9000281e03d5c376d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720071065&x-signature=lmDtX9fOGJhToydiigVodnu%2BHeQ%3D

Gradle是什么?

Gradle首先可以理解为一个项目构建工具,但如果深入挖掘的话,它也是Google官方推荐的最受欢迎的Android项目编译工具。官方介绍如下。

可见Gradle 的评价有多高。因此,对于Java 程序员,尤其是Android 程序员来说,学习和应用它是一项宝贵的技能。

Gradle 强大再哪里?为何选择她?

###优点(gradle提供):

* 与Ant相比,Maven更灵活、更强大、更容易构建功能

* 强大的多项目编译支持

* 强大的项目依赖管理

* 完整的Maven 库支持(存储库基础设施)

* 简单而强大的Groovy语言

* 技术成熟,可以处理大型构建

*可定制的插件(plugins),定制能力强

* 即是Java程序员先编译工具~

Gradle安装及环境部署

### 安装

下载地址:https://gradle.org/gradle-download/?_ga=1.168710433.1636299837.1479991326

文档位置:https://docs.gradle.org/current/userguide/installation.html

下载后解压到电脑指定位置并设置环境变量。

当然,你也可以使用sudo apt 安装,这样就不需要手动设置环境变量了。

### Gradle 包装器

Gradle 本地打包无需在PC 上安装Gradle。 Google推出了Gradle Wrapper的概念,为每个项目在本地配置指定版本的Gradle。这允许每个项目支持使用不同的Gradle 版本构建项目,并允许包装器与项目同步保存,以便可以在其他PC 机器上安装和使用,而无需安装Gradle。集成的gradle版本。

如何创建自己的gradlw 包装器?

首先,在您的项目下添加一个build.gradlw 文件。

””

任务createWrapper( type: 包装器){

gradleVersion='2.1-预览-1'

}

””

运行**gradle cW** 将生成必要的包装器。这是目录结构和代码:

12d70000ee5e896cf811~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720071065&x-signature=hN2cl6NqYxkr%2FopKez9qnmihNxU%3D

## 对项目结构的基本了解

Gradle 项目有两个概念:项目和任务,其中任务从属于项目,每个构建都在模块项目中进行管理。

这里我们有一个android 项目,显示了gradle 中的基本项目构建结果。

### Gradle 管理的Android 项目的基本结构

12d80003fba1d794ca12~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720071065&x-signature=F17GcubBfAdtILXAhY4h5KBYMTQ%3D

项目根目录包含gradlewrapper相关文件以及整个项目构建的相关配置。

app目录为主项目目录,其中放置主项目模块,子模块目录可以包含多个子项目。每个模块项目的根目录都有一个build.gradle 文件,该文件定义了模块的编译方式。

#### 1 *settings.gradle* 配置整个项目的多个模块,如:

””

包含“:App”和“:WaveProgress”

包含“:SwitchButton”

项目(':SwitchButton').projectDir=new File('子模块/SwitchButton')

项目(':WaveProgress').projectDir=new File('子模块/Waveprogress/app')

””

如果每个模块的根目录是整个项目的根目录,则不需要指定projectDir。

#### 2 *local.properties* 用于放置本地PC相关的配置路径,例如关联的SDK存储路径。该文件不需要同步保存。

””

ndk.dir=/home/android-sdk-linux/ndk-bundle

sdk.dir=/home/android-sdk-linux

””

#### 3 *gradle.properties* 设置或分配一些变量给gradle

””

## 项目范围的Gradle 配置。

#

# 有关如何配置构建环境的更多信息,请访问:

#http://www.gradle.org/docs/current/userguide/build_environment.html

#

# 指定用于守护进程的JVM 参数。

# 此设置在调整内存设置时特别有用。

# 默认值: -Xmx10248m -XX:MaxPermSize=256m

# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

#

# 如果设置,Gradle 将在孵化并行模式下运行。

# 仅在独立项目中使用此选项。有关详细信息,请参阅。

http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:de Coupled_projects

# org.gradle.Parallel=true

#2016 年1 月21 日星期四20:02:21 CST

systemProp.http.proxyHost=127.0.0.1

systemProp.http.proxyPort=8118

””

#### 4 *build.gradle* 位于根目录

””

//顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项。

构建脚本{

存储库{

jcenter()

}

依赖项{

类路径“com.android.tools.build:gradle:2.1.2”

}

}

所有项目{

存储库{

jcenter()

}

}

””

整个项目中的相关全局变量和引用都在这里定义。默认情况下,Android项目指向这里的jcenter()代码存储库。 Gradle 有三个仓库,你可以在这里配置: *maven* *ivy* 和一个本地*flat* 仓库。

””

Maven{

网址“.”

}

常春藤{

网址“.”

}

平面目录{

网址“.”

}

””

当然,这些仓库允许你定义别名,但直接引用别名更方便,如下所示:

””

存储库{

jcenter()

}

””

在某些场景下,Maven还需要引用本地库,比如Java项目引用了一些Android库。 Maven 还可以像这样设置m2repository 目录:

””

Maven {

URL '/home/android-sdk-linux/extras/android/m2repository'

}

””

#### 5 Android编译文件build.gradle

””

//添加插件

apply plugin: 'com.android.application' //Android项目插件

apply plugin: 'com.neenbedankt.android-apt' //可以添加多个插件

安卓{

compileSdkVersion 24 //编译版本

buildToolsVersion deps.bTVersion //编译工具版本

defaultConfig { //项目默认设置应用于buildTypes相关版本

应用程序ID 'com.canking.bind.cxinjectdemo'

minSdk版本15

目标SDK版本24

版本代码1

版本名称“1.0”

}

buildTypes { //编译版本控制。可以进行多种设置

发布{

minifyEnabled false //混乱

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

依赖项{//依赖项模块

编译fileTree(dir: 'libs', include: ['*.jar'])

编译deps.supportCompat

编译deps.supportv7

测试编译“junit:junit:4.12”

编译项目(':bindview')

编译项目(':animationlib')

apt 项目(':javabind')

}

””

### Gradle 任务

Gradle 的Android 插件提供了四种评分任务。

组装构建项目输出

检查执行发现和测试任务

构建用于组装和检查接头

不错的清洁工作

buildType的不同版本的调平任务被组合成新的不同任务。

喜欢:

””

./gradlew 汇编调试

””

在介绍Gradle Wrapper 时,细心的同学会注意到gradle 命令支持缩写,例如:

C.W.

./gradlw AD

””

您可以通过“gradletasks”查看项目中的所有任务。

12d9000282cd35a7f8d9~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720071065&x-signature=JlVJtlus5qNUKAJ3Cryqs9BW2wI%3D

问题

如何自定义编译gradle项目,包括如何扩展项目build.gradle以及如何自己打包逻辑并等待。如果你想掌握这些技能,你需要学习Groovy,Gradle的写作语言。更灵活的构建系统可以帮助您构建更复杂的项目。

总而言之,在下一节中,您将学习Groovy 语音的基础知识,并更深入地了解Gradle。

作者主页:http://www.canking.win/

新浪:http://weibo.com/canking666

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢