• 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插件,也属于对象插件。

  • 相关阅读:
    DW大学生网页作业制作设计 中华饮食文化(HTML+CSS+JavaScript) Web前端大作业
    C语言文件操作、C++文件操作、QT文件操作汇总及对比分析
    小项目-词法分析器
    『UniApp』uni-app-打包成App
    MySQL 索引优化实践(单表)
    Mqtt 客户端 java API 教程
    Springboot项目打jar包的两种方式 + 本地测试jar包是否可以启动
    【矩阵】计算鞍点
    c语言---指针进阶(1)
    Java_IO流05:打印流、数据流、标准输入、输出流(了解)
  • 原文地址:https://blog.csdn.net/zhangjin1120/article/details/126872619