• Android Gradle插件与Gradle的区别


    欢迎阅读gradle插件使用指南

    Gradle和Gradle插件的联系与区别

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

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

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

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

    简单讲,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'  
    
    • 1
    • 2

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

    buildscript {
        repositories {
        	//配置仓库
            google()
            jcenter()
        }
        dependencies {
        	//配置插件依赖
            classpath 'com.android.tools.build:gradle:3.5.3'
        }
    }
    //然后就可以在需要的地方引入android 插件了
    apply plugin: 'com.android.application'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

  • 相关阅读:
    github连接失败Host key verification failed.解决方案
    vue3-admin商品管理后台项目(后台布局layout布局开发二)
    C++ 访问说明符详解:封装数据,控制访问,提升安全性
    嵌入式STM32 单片机 GPIO 的工作原理详解
    SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(9)
    前端各种布局
    谁给乡镇夫妻店的数字化铺路?
    【NOWCODER】- Python:循环语句(二)
    HandlerMapping类是如何找到相应的controller呢?
    图像处理算法实战【2】读取图片并获取指定像素位置的RGB值
  • 原文地址:https://blog.csdn.net/zhangjin1120/article/details/126872619