Android Gradle插件与Gradle的区别

Posted zhangjin1120

tags:

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

欢迎阅读gradle插件使用指南

本文概要

Gradle和Gradle插件的联系与区别

Gradle是一种构建工具,能够简化你的编译、打包、测试过程。传统的构建工具还有Maven、Ant+Ivy、Make。

这里我们所说的gradle,其实分为了两部分gradle核心和gradle插件。

看下官方对于二者的描述:

Gradle核心有意为现实世界自动化提供很少的支持。所有有用的特性,如编译Java代码的能力,
都是通过插件添加的。插件添加新任务(如JavaCompile)、域对象(如SourceSet)、
约定(如Java源位于src/main/Java)以及扩展核心对象和其他插件的对象。

简单讲,gradle核心只提供了少量的自动化支持,有意地减少具体逻辑的实现,具体逻辑实现都放在插件里面。

应用于某个项目的插件,允许它扩展项目的功能。它可以做以下事情:

  • 扩展Gradle模型(例如,添加可配置的新DSL元素)
  • 根据约定配置项目(例如,添加新任务(gradle中重要的概念:Task)或配置合理的默认值)
  • 应用特定配置(例如,添加仓库(各种依赖库)或实施标准)

通过应用插件,而不是向项目构建脚本添加逻辑,我们可以获得许多好处。应用插件:

  • 促进重用并减少跨多个项目维护类似逻辑的开销
  • 允许更高程度的模块化,增强可理解性和组织性
  • 封装命令逻辑,并允许构建脚本尽可能具有声明性

Gradle不是专为某一类具体项目开发而设计的,具体到Android应用开发、java后端开发、C/C++开发的项目构建,就需要使用对应的Android gradle插件,java gradle插件、C gradle插件。android开发来说,Gradle 跟 Android Studio 其实没有关系,但是 Gradle 官方还是很看重 Android 开发的,Google 在推出 AS 的时候选中了 Gradle 作为构建工具,为了支持 Gradle 能在 AS 上使用,Google 开发了一个 AS 的插件叫 Android Gradle Plugin ,所以我们能在 AS 上使用 Gradle 完全是因为这个插件的原因。

Gradle插件有哪些类型?

  • 脚本插件 是额外的构建脚本,它会进一步配置构建,可以把它理解为一个普通的build.gradle。
  • 对象插件 又叫做二进制插件,是实现了Plugin接口的类。

对象插件可以分为内部插件和第三方插件。
常见的内部插件有java,c插件:

apply plugin:'java'  
apply plugin:'cpp'  

常见的第三方插件有android插件:

buildscript 
    repositories 
    	//配置仓库
        google()
        jcenter()
    
    dependencies 
    	//配置插件依赖
        classpath 'com.android.tools.build:gradle:3.5.3'
    

//然后就可以在需要的地方引入android 插件了
apply plugin: 'com.android.application'

我们常说的自定义gradle插件,也属于对象插件。

以上是关于Android Gradle插件与Gradle的区别的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle插件与Gradle的区别

Android Studio Gradle插件版本与Gradle 版本对应关系

Android gradle 插件与最新 Gradle 版本的兼容性

C++学习(二八零)Android Studio Gradle插件与Gradle

Gradle与Android Gradle插件的版本对应关系

Android Studio 详细的插件与Gradle的关系(建议收藏)