构建工具Gradle安装和简单使用

1. 安装

gradle官网下载页 https://gradle.org/gradle-download/ 下载gradle,其中完全版(Complete distribution包含除了运行程序外,还有源代码和重要的离线文档,不过如果你的网络很好,不在意文档是否需要离线或者更偏好在线文档,那可选择二进制(Binary only distribution版,该下载文件包里仅有运行时库。“source code”文件包仅包含gradle源代码。

 

下载完成后,解压到某个程序安装目录,这里是/usr/lib/

sudo unzip  ~/Downloads/gradle-2.14.1-all.zip -d /usr/lib/

 

做个软链接:

cd /usr/lib/
sudo ln -s gradle-2.14.1 gradle

 

配置环境变量GRADLE_HOMEPATH

编辑~/.bashrc/etc/profile(效果会有细微差别,如果单用户尽量配置到~/.bashrc,如果是多用户且不希望为其他用户重复配置,选择/etc/profile,加入以下脚本语句:

export GRADLE_HOME="/usr/lib/gradle/"
export PATH="$GRADLE_HOME/bin/:$PATH"

 

保存后source配置文件,之后变量就生效了:

source /etc/profile
source ~/.bashrc
echo $GRADLE_HOME

 

如果是配置到/etc/profile的,退出当前终端后再打开新的终端可能发现变量无效了,需要注销当前用户,重新登陆,之后打开的终端就能使用刚才设置的变量(若想知道原因,可通过关键字登陆shell、非登陆shell”了解)。

测试gradle命令是否能使用:

gradle -v

 

2. 使用

构建工具两大主要功能是构建和依赖管理,对于使用IDE开发环境的使用者来说,主要使用依赖管理功能。

gradle是通过读取配置文件(主要是项目下的build.gradle),然后使用插件来完成构建任务的。

命令行构建新Java项目Hello World

gradle有一些自带的标准插件,可直接使用,无需额外下载安装,其中javascala的插件就如其名,分别为'java''scala'

从命令行新建一个java项目并编译的过程如下:

mkdir gradle-demo
cd gradle-demo
vim build.gradle

 

写入以下内容后保存:

apply plugin:'java'

标准java插件默认的java源文件根目录是src/main/java/,可在build.gradle中加入语句更改源文件存储目录:

 

本次示例使用默认目录(也就说没有加入以上配置)。

mkdir -p src/main/java/

vim src/main/java/App.java

 

编写hello world程序:

 

保存退出。

编译Java源代码:

gradle build

 

在项目目录下多出一个build文件夹,其下有classes/main文件夹,作为保存main source set生成的java class文件用,进入之,而后运行App

cd build/classes/main/

java App

 

3. 依赖管理

灵活的依赖管理,支持多种形式的依赖,这是gradle的亮点,也是我由maven转为maven+gradle方式的原因之一。

如果使用IDE(如IntelliJ Idea)进行开发,那gradle的命令行使用就不是被关注的焦点了,这时依赖管理更受使用者关注。之前一般使用maven作为构建工具,偶尔会复制一些非maven库中的jar到项目的某个文件夹(如libslib)作为额外的依赖jar包,为满足这种需求要在build.gradle中加入依赖配置。

3.1. 依赖maven

加入本地maven依赖jar包需要加入如下配置(确保你已安装并配置好了maven,没有与gradle相关的maven配置需要做,也就说之前若已在使用maven的不需要任何事):

 

如果本地maven仓库不在~/.m2/repository/Windows下对应%USERPROFILE%\.m2\repository\),需要正确配置~/.m2/settings.xml中的本地maven仓库配置,因为M2_HOMEMAVEN_HOME/conf/settings.xml中的可能失效。也可在每个项目的build.gradle中指定本地maven仓库,通过一下配置语句实现:

maven {

         url uri('/usr/share/mvn-repo/')

      }

当然也可以使用在线的maven仓库,gradle可以自动下载到本地,可问题是gradle不会像maven一样规矩地放到本地maven仓库,导致不方便maven工具重用和管理jar包,我常用做法是用mvn dependency:copy -Dartifact=g:a:v命令下载jar包到本地,让gradle只使用本地maven仓库。

在线maven仓库依赖配置:

 

通过下图中的配置告诉gradle本项目依赖于common-io

一个依赖(dependency)有几个属性,常用的有groupartifactversion,对于maven的依赖这三者都需要,对其他如faltDir的依赖,只需artifact

 

3.2. 依赖项目/lib文件夹jar

 

通过上图中的配置告诉gradle在项目/lib, lib2/文件夹中寻找依赖包,以下图中的方式告诉gradle本项目依赖于kk包。

 

compile ':kk:1.1'语句中group为空串,artifactkkversion1.1,而gradle会匹配任何versionkk,如在本项目中,文件布局如下:

 

build.gradle文件内容如下:

 

其中kk.jar(复制dom4j包改名的)中没有version信息,而仍匹配上了compile ':kk:1.1'。如果用的是IntelliJ Idea集成开发环境,可以在Gradle窗口中点击刷新图标以更新build.gradle中的配置。打开Gradle窗口的方式是悬浮指针左下角的小灰色图标上,而后点击弹出的Gradle菜单项,如下图:

 

刷新按钮的图标如下图中的第一个两个箭头围起来的圆圈:

 

posted @ 2016-07-28 18:42  二球悬铃木  阅读(1445)  评论(0编辑  收藏  举报