初探Gradle

作者: MaxZing | 来源:发表于2017-05-07 22:57 被阅读55次

    0x00 所谓构建工具

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

    后来,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跨平台,你值得拥有😁)。
    2. 由Groovy的领域语言DSL来表达构建脚本(所以简洁,强大)。
    3. 项目迁移到gradle不需要特大改动,而且极易扩展
    4. 用的人越来越多了
    5. 大型项目持续交付,自动构建

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

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

    0x02 Gradle之世界你好

    现在写一个Gradle版的Hello World

    1. 安装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 -v

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

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

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

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

    gradle -q helloworld
    

    看效果

    我是在graldeTest文件夹下运行的

    这里只是运行了一个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计划依然在进行,不过会慢一些了,因为过些日子还有一堆其他事情要处理,希望我能够保持学习的节奏吧。

    欢迎转载,请保留出处:初探Gradle by:MaxZing

    相关文章

      网友评论

        本文标题:初探Gradle

        本文链接:https://www.haomeiwen.com/subject/pttptxtx.html