構建工具Gradle安裝和簡單使用

1. 安裝

gradle官網下載頁 https://gradle.org/gradle-download/ 下載gradle,其中徹底版(Complete distribution包含除了運行程序外,還有源代碼和重要的離線文檔,不過若是你的網絡很好,不在乎文檔是否須要離線或者更偏好在線文檔,那可選擇二進制(Binary only distribution版,該下載文件包裏僅有運行時庫。「source code」文件包僅包含gradle源代碼。java

 

下載完成後,解壓到某個程序安裝目錄,這裏是/usr/lib/shell

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

 

作個軟連接:vim

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

 

配置環境變量GRADLE_HOMEPATHbash

編輯~/.bashrc/etc/profile(效果會有細微差異,若是單用戶儘可能配置到~/.bashrc,若是是多用戶且不但願爲其餘用戶重複配置,選擇/etc/profile,加入如下腳本語句:網絡

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

 

保存後source配置文件,以後變量就生效了:app

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

 

若是是配置到/etc/profile的,退出當前終端後再打開新的終端可能發現變量無效了,須要註銷當前用戶,從新登錄,以後打開的終端就能使用剛纔設置的變量(若想知道緣由,可經過關鍵字登錄shell、非登錄shell」瞭解)。dom

測試gradle命令是否能使用:maven

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菜單項,以下圖:

 

刷新按鈕的圖標以下圖中的第一個兩個箭頭圍起來的圓圈:

 

相關文章
相關標籤/搜索