博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
构建工具--Gradle
阅读量:4590 次
发布时间:2019-06-09

本文共 2504 字,大约阅读时间需要 8 分钟。

  谈到Gradle,都知道是一种构建工具。那就要先了解一下什么是构建工具,为什么要使用构建工具?

  什么是构建工具

  构建工具是一个把源代码生成可执行应用程序的过程自动化的程序。构建包括编译、连接跟把代码打包成可用的或可执行的形式。基本上构建的自动化是编写或使一大部分任务自动执行的一个动作,而这些任务则是软件开发者的日常,像是:

  1. 下载依赖
  2. 将源代码编译成二进制代码
  3. 打包生成的二进制代码
  4. 进行单元测试
  5. 部署到生产系统

 为什么要使用构建工具或构建自动化

  在小型项目中,开发者往往手动调用构建过程,这样在大型的项目中很不实用,在构建过程中难以跟踪什么需要被构建、按照什么顺序构建以及项目中存在哪些依赖。使用自动化工具会使构建过程更为连续。

        对Gradle的理解

   1、Gradle是一种构建工具,它可以帮你管理项目中的差异,依赖,编译,打包,部署......,你可以定义满足自己需要的构建逻辑,写入到build.gradle中供日后复用.

      2、Gradle不是一种编程语言,它不能帮你实现软件中的任何实际功能

  

  对构建工具和Gradle进行简单了解后,学习一下如何进行安装配置Gradle.

  Gradle下载

  官网下载链接:http://services.gradle.org/distributions/,官方提供了许多版本下载,选择自己需要的版本

  

  Gradle下载好后,解压到当前文件夹中

  安装配置

   右键桌面此电脑,选择菜单中的属性选项

 

 点开对话框后,点击高级系统设置

 在弹出的系统属性对话框中,点击环境变量

 

 在弹出的环境变量窗口中,在系统变量选项下点击新建

  变量名:GRADLE_HOME

  变量值:gradle的解压路径

  

 

 然后在系统变量中找到Path变量,双击打开或点击编辑,在弹出的对话框点击新建

在新建框中输入%GRADLE_HOME%\bin,点击确定。Gradle的安装和配置就完成了,需要验证安装是否成功。

打开cmd对话框,输入gradle。会显示BUILD SUCCESSFUL,说明安装配置成功。

 

  Gradle与Maven简单对比

  1.,Gradle抛弃了Maven的基于XML的繁琐配置,众所周知XML的阅读体验比较差,对于机器来说虽然容易识别,但毕竟是由人去维护的。取而代之的是Gradle采用了领域特定语言Groovy的配置,大大简化了构建代码的行数,比如在Maven中你要引入一个依赖:

2.3
com.google.code.kaptcha
kaptcha
${kaptcha.version}
jdk15
org.springframework
spring-core
org.springframework
spring-beans
org.springframework
spring-context
junit
junit

将其转换成Gradle脚本

dependencies {    compile('org.springframework:spring-core:2.5.6')    compile('org.springframework:spring-beans:2.5.6')    compile('org.springframework:spring-context:2.5.6')    compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')    testCompile('junit:junit:4.7')}

  2.Maven和Gradle对依赖项的scope有所不同。在Maven世界中,一个依赖项有6种scope,分别是complie(默认)、provided、runtime、test、system、import。而grade将其简化为了4种,compile、runtime、testCompile、testRuntime。

  3.Gradle支持动态的版本依赖。在版本号后面使用+号的方式可以实现动态的版本管理。

  4.在解决依赖冲突方面Gradle的实现机制更加明确。使用Maven和Gradle进行依赖管理时都采用的是传递性依赖;而如果多个依赖项指向同一个依赖项的不同版本时就会引起依赖冲突。而Maven处理这种依赖关系往往是噩梦一般的存在。而Gradle在解决依赖冲突方面相对来说比较明确。

转载于:https://www.cnblogs.com/daxiaxia/p/8543497.html

你可能感兴趣的文章
微信支付官方SDK V3 .NET版的坑
查看>>
Python(一)list tuple dict set
查看>>
什么是死锁,简述死锁发生的四个必要条件,如何避免与预防死锁
查看>>
hdu4651(广义五边形数 & 分割函数1)
查看>>
python iter,迭代器&dict,字典详解
查看>>
python笔记1
查看>>
C语言:自定义一个查找字串的功能函数,类似于<string.h>中的strstr()
查看>>
数据库联系 创建表格:重点
查看>>
Regist
查看>>
设置磁盘配额(第二版)
查看>>
[转]asp.net 防止外部提交数据
查看>>
android用户界面之Gallery3D学习资料汇总
查看>>
[编写高质量代码:改善java程序的151个建议]建议62 警惕数组的浅拷贝
查看>>
h5移动端适配iOS遇到的问题
查看>>
20. 最长公共子串(ToDo)[LCS]
查看>>
浮动:图解两栏布局
查看>>
CSS3 box-sizing 属性
查看>>
expect用法
查看>>
JavaScript [ 转 ] —— 面向对象编程(二):构造函数的继承
查看>>
$百度应用引擎BAE的使用与应用部署
查看>>