初探Gradle

栏目: Java · 发布时间: 7年前

内容简介:初探Gradle

多人合作时,代码需要按照规范统一管理,但是早期一个项目很难做到一处编写到处运行。一方面,开发者自己的编写环境不能绝对统一,另一方面,没有一个方案去解决自动构建项目的问题,而手动机械重复构建往往出现各种问题。

后来,Java构建项目 工具 诞生了Ant,第一代自动化构建工具。通过XML,约束构建流程,达到自动构建的目的。

Ant构建脚本由 一个project ,多个target,以及可用的task构成。

有兴趣的童鞋可用查一下,Ant构建的XML文件的大致写法,这里不作详解。只介绍缺点

ㄟ( ▔, ▔ )ㄏ

Ant虽然实现了自动构建,但是在大型项目中,XML构建脚本异常臃肿庞大;构建脚本逻辑也会越来越复杂,最后难以维护。

而且Ant没有规范项目结构,可能导致每次编译出来的东西都不太一样,特别当依赖被改来改去,易出现重复拷贝。因为Ant自身本来就没有提供依赖管理工具,只能借助Ivy。

构建时也无法监控内存变化,task执行。

然后又出现了Maven,现在Maven依然被广泛利用。

Maven本身规范了项目结构,并提供了依赖管理。主要功能如下:

  • 代码编译
  • 测试(单元,集成)
  • 装配(如,jar文件依赖)
  • 部署(将项目部署到本地仓库)
  • 发布(将项目发布到远程仓库)

上面都是看来的,因为Maven解决了Ant的痛点,很快流行起来,其中仓库的概念,更是好用,解决了依赖问题。而且Maven可以添加各种插件,相对来说,比Ant更易用,更稳定。

但是:Maven规范很严格,可能导致你搬运来的非Maven项目,需要大改才能运行。扩展也非常难搞,需要了解Major,早期版本还会自己更新,这对有墙的我们来说很痛苦。

所以今天我要介绍Gradle,一个灵活的构建工具。

0x01 Gradle,一个更好的构建工具!

一开始接触gradle会觉得,这玩意儿写的东西很简洁,logo也比Maven好看。

但是估计也不知道这东西咋玩。所以这个东西究竟好在哪里?

  1. 基于JVM,Gradle是基于JVM的构建工具(Java跨平台,你值得拥有:grin:)。
  2. 由Groovy的领域语言DSL来表达构建脚本(所以简洁,强大)。
  3. 项目迁移到gradle不需要特大改动,而且极易扩展
  4. 用的人越来越多了
  5. 大型项目持续交付,

初探Gradle

唉,看的书作者懒得翻译,我给你们看 wikipedia的解释 )

鲁棒 : 健壮性 (英语: Robustness )是指一个计算机系统在执行过程中处理错误,以及算法在遭遇输入、运算等异常时继续正常运行的能力。 诸如 模糊测试 之类的 形式化方法 中,必须通过制造错误的或不可预期的输入来验证程序的健壮性。很多商业产品都可用来测试软件系统的健壮性。健壮性也是 失效评定 分析中的一个方面。

0x02 Gradle之世界你好

废话一大堆,现在写一个Gradle版的Hello World

  • 准备
  1. 安装JDK,配置JAVA_HOME
    Windows: http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html
    Lunix: http://jingyan.baidu.com/article/ab0b56308966acc15afa7d18.html
    Mac:自行搜索吧
  2. 安装Gradle,配置GRADLE_HOME
    官方安装文档: https://gradle.org/install
    如果你英文烂,请使用百度,我只说一下Lunix
    https://gradle.org/releases 找一个最新的稳定版本,不看源码你只需要binary-only 版本的,我以3.5 为例子。
cd /usr/local
sudo mkdir gradle
cd gradle
sudo wget https://services.gradle.org/distributions/gradle-3.5-bin.zip
sudo unzip gradle-3.5-bin.zip

配置环境变量

vim ~/.profile

在最后添加下面

export GRADLE_HOME=/usr/local/gradle/gradle-3.5
export PATH=$GRADLE_HOME/bin:$PATH

按下 esc 然后 :wq! 保存

然后使环境变量生效

source ~/.profile

好了,安装完成。

请务必自己处理好路径

测试,打开命令行。

初探Gradle

接下来创造爱因斯坦小板凳

随便找一个文件夹,创建一个build.gradle文件,里面写如下代码

task helloworld{
  doLast{
    println 'Hello World!'
  }
}

然后,在这个文件夹下运行命令行

输入

gradle -q helloworld

看效果

初探Gradle

这里只是运行了一个task,task和action是gradle重要的概念,当然我也是开始学习。后面会把这些概念挨个介绍给各位老爷。

这里介绍一下 gralde -q这个命令

-q, --quiet             Log errors only.

安静模式运行,只打印错误日志。

当然

还有其他的命令,我找几个常用的介绍一下。

-b xxx.gradle  #运行一个叫xxx的构建脚本
--offline #离线运行(保证本地有离线仓库)
-P --project-prop #向构建脚本中传参
-i --info #设置编译日志输出级别
-s --stacktrace #构建出错输出跟踪栈信息
tasks #显示所有可运行的task
properties #显示项目中可用的属性

0x03 小结

废话了一大堆,后面写了个helloWorld,想必目前各位看官老爷还是不太明白gradle究竟如何使用。不急,后面我会一一把坑填好的:我会介绍创建Gradle项目,构建脚本,依赖管理等,不过写的会稍微慢一点。

ps:因为脑残升级了node,导致Hexo博客炸了,昨天抢救了一整天。发了一篇小白文。

因为要熟悉项目,还有那个FS计划依然在进行,不过会慢一些了,过些日子还有一堆其他事情要处理,希望我能够保持学习的节奏吧。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员面试宝典

程序员面试宝典

欧立奇、刘洋、段韬 / 电子工业出版社 / 2006-7 / 39.00元

本书取材于各大IT公司历年面试真题(包括笔试题、口试题、电话面试、英语面试,以及逻辑测试和智商测试)。通过精确详细的分类,把在应聘程序员(含网络、测试等)过程中所遇见的常见考点分为21章。不仅对传统的C系语言考点做了详尽的解说,包括面向对象问题、sizeof问题、const问题、数据结构问题等。还根据外企出题最新特点,针对设计模式问题、C#问题、网络问题、数据库问题、NET问题等,做了深入的说明。......一起来看看 《程序员面试宝典》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器