灵活强大的构建系统灵活强大的构建系统Gradle
前言
构建,软件生命周期中重要的一环,在现代软件开发过程中,起着越来越重要的作用。过去在Java或类Java的世界里,Ant、
Maven再熟悉不过了,Maven凭借其强大的依赖配置战胜Ant,基本上成为了Java构建的标准。而在现代,系统日益复杂,构
建的灵活性要求越来越高,比如:构建过程中需要打包上传到服务器,Maven无法很好地支持这种复杂的系统构建,所以,我
选择了Gradle,一个基于Groovy,更灵活更强大的构建系统,能帮助我们构建更复杂的项目。
为什么选择Gradle
从框架方向来看:
Gradle是很成熟的技术,可以处理大规模构建
Gradle对多语言、多平台有更natural的支持
Gradle关注在构建效率上
Gradle发布很频繁,重要feature开发计划透明化
Gradle社区很活跃,并且增加迅速
从语言特性来看:
1.代码很精简
2.Gradle基于Groovy,能完成复杂系统的构建任务
3.DSL比XML更简洁高效
Gradle在开源项目中的使用
现在使用Gradle构建的开源项目很多,我有过接触的比如:Grails, Griffon, Groovy, Hibernate, Spring
还有很多其它开源项目也都在用Gradle,比如Tapestry,Qi4J,Netflix下所有开源项目(python、c++、html等除外)等等。
Gradle在企业中的使用
现在使用Gradle来做构建体系的公司也越来越多,linkedin就很早开始切换到Gradle。
Gradle体验
Gradle的安装非常方便,下载ZIP包,解压到本地目录,设置 GRADLE_HOME 环境变量并将 GRADLE_HOME/bin 加到
PATH 环境变量中,安装就完成了。用户可以运行gradle -v命令验证安装,这些初始的步骤和Maven没什么两样。我这里安装
的Gradle版本是1.10,详细信息见下:
bob [10:42] ? gradle -v
------------------------------------------------------------
Gradle 1.10
------------------------------------------------------------
Build time: 2013-12-17 09:28:15 UTC
Build number: none
Revision: 36ced393628875ff15575fa03d16c1349ffe8bb6
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Ivy: 2.2.0
JVM: 1.7.0_45 (Oracle Corporation 24.45-b08)
OS: Mac OS X 10.9.2 x86_64
Gradle的Features很多,官网doc介绍很详细,我这里就不多说。下面简单介绍一下Gradle构建相关的东西。
Gradle基础
1,Gradle有两个最基本的概念:project和task。Gradle里面的所有东西都基于这两个概念。project通常指一个项目,而task
指构建过程中的任务。一次构建可以有1到n个project,每个project有1到n个task。
2,Gradle有一个类似Maven中pom.xml的配置文件:build.gradle。功能也基本一样,负责当前project的构建定义。看一个
build.gradle的简单例子: