你作好web应用的原型,向你的同事展现,他们说想要加入你的开发团队,给你的应用添加更多的高级特性让它更上一层。代码已经被提交到版本控制系统中,因此他们把代码下载下来就能够开始工做了。web
有同事历来没有使用过Gradle,因此他询问你怎么在机器上安装Gradle运行时和用什么版本。由于他没有安装过Gradle,因此他也关心在window上安装和在Mac上安装有什么不一样。根据使用其余构建工具的经验,这同事意识到若是选错构建工具的版本或者运行时环境可能对构建结果带来很差的影响。在本机上运行成功,可是在别的机器上运行失败,实在太日常了。在煎熬了好几个小时后,他发现缘由是运行时版本不兼容。shell
针对这个问题,Gradle提供了一个很是方便和实用的解决方案: Gradle包装器 。它是Gradle的核心特性,可以让机器在没有安装Gradle运行时的状况下运行Gradle构建。它也让构建脚本运行在一个指定的Gradle版本上。它是经过自动从中心仓库下载Gradle运行时,解压和使用来实现的。最终的目标是创造一个独立于系统,系统配置和Gradle版本的可靠和可重复的构建。安全
注:何时用包装器?使用包装器被认为是最佳实践,对每个Gradle项目都是必需的。由包装器支持的Gradle脚本很是适合做为自动化发布过程的一部分,好比持续集成和交付。服务器
配置包装器app
在项目中配置包装器,你只须要作两件事情:建立一个包装器任务和执行任务生成包装器文件。为了可以让项目能够下载压缩过的Gradle运行时文件,定义一个类型为 Wrapper 的任务,经过gradleVersion属性指定你想要使用的Gradle版本:工具
task wrapper(type: Wrapper){ gradleVersion = '1.7' }
不要求该任务的名字为wrapper——任何名字均可以。然而,wrapper这个名字一般在Gradle的在线文档中使用,而且做为默认约定。执行任务:gradle
$ gradle wrapper
结果是,你会发现包装器文件在构建脚本的旁边。记住,你只须要在项目中运行一次 gradle wrapper 命令。从那时开始,你就能够用包装器的脚本执行构建了。下载下来的包装器文件应该提交到版本控制系统中。为了记录构建使用过包装器,将wrapper任务保留在项目中也是有用的。经过改变gradleVersion的值和从新运行wrapper任务,它会帮助你升级包装器的版本。spa
使用包装器操作系统
做为包装器发布内容的一部分,它提供了一个命令执行脚本。对于*nix系统,它是一个叫做 gradlew 的shell脚本;对于window操做系统,它是gradlew.bat。示例:版本控制
$ gradlew jettyRun
定制包装器
某些企业有很是严格的安全策略,特别是当你为政府机构工做时,访问外网是禁止的。在这种状况下,如何让你的项目使用Gradle包装器呢?从新配置。你能够改变默认配置,将它指向一个存有运行时发布文件的企业内部服务器。同时你还能够改变本地的存储路径:
task wrapper(type:Wrapper) { gradleVersion = '1.2' //Gradle版本号 distributionUrl = ' //获取Gradle包装器的URL distributionPath = 'gradle-dists' //包装器被解压缩后存放的相对路径 }
包装器还有不少可用的选项,你能够在Gradle包装器的DSL文档。