当前位置: 首页 > news >正文

为什么要使用Gradle?

Why Gradle?(为什么使用gradle)

  • Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。
  • Gradle是一个优秀的构建系统和构建工具,它允许通过插件创建自定义的构建逻辑。 我们基于Gradle以下的一些特点而选择了它:
    • 采用了Domain Specific Language(DSL语言) 来描述和控制构建逻辑。
    • 构建文件基于Groovy,并且允许通过混合声明DSL元素和使用代码来控制DSL元素以控制自定义的构建逻辑。
    • 支持Maven或者Ivy的依赖管理。
    • 非常灵活。允许使用最好的实现,但是不会强制实现的方式。
    • 插件可以提供自己的DSL和API以供构建文件使用。
    • 良好的API工具供IDE集成。

Goals of the new Build System(gradle构建系统的目标)

  • 采用Gradle作为新构建系统的目标:
    • 让重用代码和资源变得更加容易。(在不同源代码集之间重复使用代码和资源。)
    • 让创建同一应用程序的不同版本变得更加容易,无论是多个apk发布版本还是同一个应用的不同定制版本。(使用相同的项目和模块为您的应用创建多个具有不同功能的 APK。)
    • 让构建过程变得更加容易配置,扩展和定制。(自定义、配置和扩展构建流程。)
    • 整合优秀的IDE

总而言之利用 Gradle 的灵活性,您可以在不修改应用核心源文件的情况下实现以上所有目的。 Android Studio 构建文件以 build.gradle 命名。 这些文件是纯文本文件,使用适用于 Gradle 的 Android 插件提供的元素以 Groovy 语法配置构建。 每个项目有一个用于整个项目的顶级构建文件,以及用于各模块的单独的模块层级构建文件。在导入现有项目时,Android Studio 会自动生成必要的构建文件。


Gradle介绍

Gradle是一个基于JVM的构建工具,它提供了:

  • 像Ant一样,通用灵活的构建工具
  • 可以切换的,基于约定的构建框架
  • 强大的多工程构建支持
  • 基于Apache Ivy的强大的依赖管理
  • 支持maven, Ivy仓库
  • 支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件。
  • 对Ant的任务做了很好的集成
  • 基于Groovy,build脚本使用Groovy编写
  • 有广泛的领域模型支持构建

Gradle 概述

  • 基于声明和基于约定的构建。
  • 依赖型的编程语言。
  • 可以结构化构建,易于维护和理解。
  • 有高级的API允许你在构建执行的整个过程当中,对它的核心进行监视,或者是配置它的行为。
  • 有良好的扩展性。有增量构建功能来克服性能瓶颈问题。
  • 多项目构建的支持。
  • 多种方式的依赖管理。
  • 是第一个构建集成工具。集成了Ant, maven的功能。
  • 易于移值。
  • 脚本采用Groovy编写,易于维护。
  • 通过Gradle Wrapper允许你在没有安装Gradle的机器上进行Gradle构建。
  • 自由,开源。

更多关于Gradle

Groovy语法介绍

相关文章:

  • Docker CE 安装
  • 常用收藏与分享
  • padding和margin的区别和作用及各种场合出现的bug
  • 第 51 章 DML (Data Manipulation Language)
  • html2练习
  • C++查缺补漏,赶紧的
  • Mac批量转换mp3为caf
  • RxSwift
  • 1.3. 服务器部署与网络拓扑
  • MySQL 大表优化方案
  • 004-unity3d MonoBehaviour脚本方法简介
  • JS-DOM的知识点及应用
  • 怎样做网站优化才能更有效的吸引蜘蛛来访?
  • centos--git搭建之Gogs安装
  • 记一次kafka故障
  • Android系统模拟器绘制实现概述
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • JavaWeb(学习笔记二)
  • nodejs:开发并发布一个nodejs包
  • PAT A1017 优先队列
  • Promise面试题,控制异步流程
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • XML已死 ?
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 检测对象或数组
  • 理清楚Vue的结构
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 通过git安装npm私有模块
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 移动端 h5开发相关内容总结(三)
  • 智能合约开发环境搭建及Hello World合约
  • 【云吞铺子】性能抖动剖析(二)
  • scrapy中间件源码分析及常用中间件大全
  • Semaphore
  • 阿里云API、SDK和CLI应用实践方案
  • # 数据结构
  • (2)(2.10) LTM telemetry
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (done) 两个矩阵 “相似” 是什么意思?
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (九十四)函数和二维数组
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (六)c52学习之旅-独立按键
  • (三)elasticsearch 源码之启动流程分析
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • ..回顾17,展望18
  • .Net CF下精确的计时器
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler