gradle 系列 (1) - 基础知识

在学习 gradle 之前我们先要知道 gradle 是个什么东西,知道的觉得没什么,不知道的可是真没什么感念,gradle 就是自动化构建,编译工具。先不忙 gradle,我们先来看看这个自动化构建,编译工具。

项目自动化构建工具的发展

最早在开发的过程中是没有项目自动化构建这个东西的,每次编译项目的时候都是在命令行下对每个源文件执行编译命令,这种方式对于源文件不多的小项目还行,但是当项目比较大有成百上千个源文件需要编译时就比较痛苦了,所以才有了一些自动化构建工具的诞生,其本质是将一些繁琐的无须人工干预的编译流程交由机器来完成。

Makefile

最早出现的构建工具是makefile,它主要用于C/C++项目,大家会发现Android的源码里面用的就是这一套构建机制。makefile文件将程序编译,链接,装载(编译原理上的东西,不熟悉的可以去翻阅相关书籍)的流程定义成一套统一的规则。其中就包括了:哪些源文件需要编译,如何去编译,依赖的库文件,以及如何生成最终的可执行文件等等。通过这些规则去实现我们的构建需求,那么当你在编译整个工程的时候就只需要在命令行下执行一个make命令就可以搞定了,极大的提高了项目的构建效率。

Ant

ant也是一套构建工具,主要应用于Java项目(在eclipse上开发Android项目的时候用的比较多)。它是一个将软件编译,测试,部署过程组织起来自动化执行的工具。ant构建文件基于xml,每个文件对应一个唯一的project,每个project下面可以有很多的target,这些target之间存在着一定的依赖关系,当执行某个target时需要先执行该target的依赖。每个target里面又包含了一些task,task就是最终需要执行的命令。

Maven

ant虽然能大幅提高构建的效率,但是也存在一些缺点,比方说ant中的组件依赖(jar包)不能跨网络使用,为了解决这个问题,于是maven出现了,maven使用了强大的中央仓库,使得项目中使用到的一些公共组件可以很方便的联网依赖和更新,这也极大的方便了一些开源项目的使用。

Gradle

由于maven的配置过于复杂和繁琐,于是出现了我们今天的主角gradle,下面给大家看下两者配置文件的对比。

maven的配置:

<dependencies>
    <dependency>
        <groupId>com.crashlytics.sdk.android</groupId>
        <artifactId>crashlytics</artifactId>
        <version>2.5.5</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
    </dependency>
</dependencies>

gradle的配置:

dependencies {
    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar')
    testCompile('junit:junit:4.7')
}

看完项目自动化构建工具的发展历史,想必各位心里有点谱了,至于对这个 gradle 干的活有点理解了。



参考资料:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,974评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,663评论 25 708
  • 1.介绍 如果你正在查阅build.gradle文件的所有可选项,请点击这里进行查阅:DSL参考 1.1新构建系统...
    Chuckiefan阅读 12,190评论 8 72
  • 原来距离去年在这上面写字已经过了一年多,去年说要另外起一篇记录生活,我食言了。 可能是又得准备一个新的开始无从下手...
    简员阅读 213评论 0 0