📖前言
寻找光的过程,就是向上爬的过程
纯真的【苏醒】、海上的【告别】、傍晚的【遗憾】、山中的【约定】、平凡的【妥协】、自我的【同行】、美好的【相遇】、社恐的【停顿】、表达的【倾听】、勇敢的【探索】,最终发现,【爱】是雾中的灯塔,指引着出海时的彼岸,也是向往的归宿。所以,“幼鸟”们,当落定所有声色,也别忘记哼着歌。——幼鸟指南
🚀Gradle 简介
Gradle 这是一个基于 JVM 的富有突破性的构建工具。
它为您提供了:
- 一个像
ant一样,通用的灵活的构建工具 - 一种可切换的,像
maven一样的基于约定约定优于配置的构建框架 - 强大的多工程构建支持
- 强大的依赖管理(基于
ApacheIvy) - 对已有的
maven和ivy仓库的全面支持 - 支持传递性依赖管理,而不需要远程仓库或者
pom.xml或者ivy配置文件 ant式的任务和构建是gradle的第一公民- 基于
groovy,其build脚本使用groovy dsl编写 - 具有广泛的领域模型支持你的构建
✨Gradle 下载
- 先决条件:安装配置
JDK7以上版本- 已安装 JDK/JRE(版本 7 或以上),这里是 Win10 系统
- 在命令行输入:
java -version可查询当前电脑已安装的版本,结果如下所示:
- 下载:下载最新版本的
Gradle压缩包,解压到某个路径(官网下载地址:传送门)
👏解压
Gradle 发行包是一个 ZIP 文件。完整的发行包包括以下内容(官方发行包有 full 完整版,也有不带源码和文档的版本,可根据需求下载。
- Gradle 可执行文件
- 用户手册 (有 PDF 和 HTML 两种版本)
- DSL 参考指南
- API 手册(Javadoc 和 Groovydoc)
- 样例,包括用户手册中的例子,一些完整的构建样例和更加复杂的构建脚本
- 源代码。仅供参考使用,如果你想要自己来编译 Gradle 你需要从源代码仓库中检出发行版本源码,具体请查看 Gradle 官方主页。
👏配置环境变量
运行 gradle 必须将 GRADLE_HOME\bin 加入到你的 PATH 环境变量中。
👏测试安装
运行如下命令来检查是否安装成功.该命令会显示当前的 JVM 版本和 Gradle 版本。结果如下所示:
gradle -v
👏修改默认缓存路径
修改Gradle默认缓存目录可使用命令gradle -g 目录路径,例如 gradle -g xxxxxx 结果如下所示:
👏修改全局默认仓库
进入 Gradle 安装目录下的 init.d 文件夹,新建 init.gradle 文件,在此文件中输入如下所示的内容(即可修改为阿里镜像地址):
allprojects {
repositories {
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
}
}
👏JVM 参数配置
Gradle 运行时的 JVM 参数可以通过 GRADLE_OPTS 或 JAVA_OPTS 来设置.这些参数将会同时生效。 JAVA_OPTS 设置的参数将会同其它 JAVA 应用共享,一个典型的例子是可以在 JAVA_OPTS 中设置代理和 GRADLE_OPTS 设置内存参数。同时这些参数也可以在 gradle 或者 gradlew 脚本文件的开头进行设置。
🚀下面是一些 Gradle 特性的列表。
基于声明的构建和基于约定的构建
Gradle 的核心在于基于 Groovy 的丰富而可扩展的域描述语言(DSL)。 Groovy 通过声明性的语言元素将基于声明的构建推向下层,你可以按你想要的方式进行组合。 这些元素同样也为支持 Java, Groovy,OSGi,Web 和 Scala 项目提供了基于约定的构建。 并且,这种声明性的语言是可以扩展的。你可以添加新的或增强现有的语言元素。 因此,它提供了简明、可维护和易理解的构建。
为以依赖为基础的编程方式提供语言支持
声明性语言优点在于通用任务图,你可以将其充分利用在构建中. 它提供了最大限度的灵活性,以让 Gradle 适应你的特殊需求。
构建结构化
Gradle 的灵活和丰富性最终能够支持在你的构建中应用通用的设计模式。 例如,它可以很容易地将你的构建拆分为多个可重用的模块,最后再进行组装,但不要强制地进行模块的拆分。 不要把原本在一起的东西强行分开(比如在你的项目结构里),从而避免让你的构建变成一场噩梦。 最后,你可以创建一个结构良好,易于维护,易于理解的构建。
深度 API
Gradle 允许你在构建执行的整个生命周期,对它的核心配置及执行行为进行监视并自定义。
Gradle 的扩展
Gradle 有非常良好的扩展性。 从简单的单项目构建,到庞大的多项目构建,它都能显著地提升你的效率。 这才是真正的结构化构建。通过最先进的增量构建功能,它可以解决许多大型企业所面临的性能瓶颈问题。
多项目构建
Gradle 对多项目构建的支持非常出色。项目依赖是首先需要考虑的问题。 我们允许你在多项目构建当中对项目依赖关系进行建模,因为它们才是你真正的问题域。 Gradle 遵守你的布局。
Gradle 提供了局部构建的功能。 如果你在构建一个单独的子项目,Gradle 也会帮你构建它所依赖的所有子项目。 你也可以选择重新构建依赖于特定子项目的子项目。 这种增量构建将使得在大型构建任务中省下大量时间。
多种方式管理依赖
不同的团队喜欢用不同的方式来管理他们的外部依赖。 从 Maven 和 Ivy 的远程仓库的传递依赖管理,到本地文件系统的 jar 包或目录,Gradle 对所有的管理策略都提供了方便的支持。
Gradle 是第一个构建集成工具
Ant tasks 是最重要的。而更有趣的是,Ant projects 也是最重要的。 Gradle 对任意的 Ant 项目提供了深度导入,并在运行时将 Ant 目标(target)转换为原生的 Gradle 任务(task)。 你可以从 Gradle 上依赖它们(Ant targets),增强它们,甚至在你的 build.xml 上定义对 Gradle tasks 的依赖。Gradle 为属性、路径等等提供了同样的整合。
Gradle 完全支持用于发布或检索依赖的 Maven 或 Ivy 仓库。 Gradle 同样提供了一个转换器,用于将一个 Maven pom.xml 文件转换为一个 Gradle 脚本。Maven 项目的运行时导入的功能将很快会有。
易于移植
Gradle 能适应你已有的任何结构。因此,你总可以在你构建项目的同一个分支当中开发你的 Gradle 构建脚本,并且它们能够并行进行。 我们通常建议编写测试,以保证生成的文件是一样的。 这种移植方式会尽可能的可靠和减少破坏性。这也是重构的最佳做法。
Groovy
Gradle 的构建脚本是采用 Groovy 写的,而不是用 XML。 但与其他方法不同,它并不只是展示了由一种动态语言编写的原始脚本的强大。 那样将导致维护构建变得很困难。 Gradle 的整体设计是面向被作为一门语言,而不是一个僵化的框架。 并且 Groovy 是我们允许你通过抽象的 Gradle 描述你个人的 story 的黏合剂。 Gradle 提供了一些标准通用的 story。这是我们相比其他声明性构建系统的主要特点。 我们的 Groovy 支持也不是简单的糖衣层,整个 Gradle 的 API 都是完全 groovy 化的。只有通过 Groovy才能去运用它并对它提高效率。
The Gradle wrapper
Gradle Wrapper 允许你在没有安装 Gradle 的机器上执行 Gradle 构建。 这一点是非常有用的。比如,对一些持续集成服务来说。 它对一个开源项目保持低门槛构建也是非常有用的。 Wrapper 对企业来说也很有用,它使得对客户端计算机零配置。 它强制使用指定的版本,以减少兼容支持问题。
提一嘴
当你遇到问题时,首先确认一下是否用的最新版本的 Gradle。最新版本总是会更加的完善并且带有更多的新特性。或许你的问题在最新版本中已经得到的解决。
如果你采用守护模式运行,那么尝试用 --no-daemon 来停掉守护模式。也可以去Gralde 官方论坛 来寻求一些帮助。
🎉最后
-
更多参考精彩博文请看这里:陈永佳的博客
-
喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!