構建工具--Gradle
談到Gradle,都知道是一種構建工具。那就要先了解一下什麽是構建工具,為什麽要使用構建工具?
什麽是構建工具
構建工具是一個把源代碼生成可執行應用程序的過程自動化的程序。構建包括編譯、連接跟把代碼打包成可用的或可執行的形式。基本上構建的自動化是編寫或使一大部分任務自動執行的一個動作,而這些任務則是軟件開發者的日常,像是:
- 下載依賴
- 將源代碼編譯成二進制代碼
- 打包生成的二進制代碼
- 進行單元測試
- 部署到生產系統
為什麽要使用構建工具或構建自動化
在小型項目中,開發者往往手動調用構建過程,這樣在大型的項目中很不實用,在構建過程中難以跟蹤什麽需要被構建、按照什麽順序構建以及項目中存在哪些依賴。使用自動化工具會使構建過程更為連續。
對Gradle的理解
1、Gradle是一種構建工具,它可以幫你管理項目中的差異,依賴,編譯,打包,部署......,你可以定義滿足自己需要的構建邏輯,寫入到build.gradle中供日後復用.
2、Gradle不是一種編程語言,它不能幫你實現軟件中的任何實際功能
對構建工具和Gradle進行簡單了解後,學習一下如何進行安裝配置Gradle.
Gradle下載
官網下載鏈接:http://services.gradle.org/distributions/,官方提供了許多版本下載,選擇自己需要的版本
Gradle下載好後,解壓到當前文件夾中
安裝配置
右鍵桌面此電腦,選擇菜單中的屬性選項
點開對話框後,點擊高級系統設置
在彈出的系統屬性對話框中,點擊環境變量
在彈出的環境變量窗口中,在系統變量選項下點擊新建
變量名:GRADLE_HOME
變量值:gradle的解壓路徑
然後在系統變量中找到Path變量,雙擊打開或點擊編輯,在彈出的對話框點擊新建
在新建框中輸入%GRADLE_HOME%\bin,點擊確定。Gradle的安裝和配置就完成了,需要驗證安裝是否成功。
打開cmd對話框,輸入gradle。會顯示BUILD SUCCESSFUL,說明安裝配置成功。
Gradle與Maven簡單對比
1.,Gradle拋棄了Maven的基於XML的繁瑣配置,眾所周知XML的閱讀體驗比較差,對於機器來說雖然容易識別,但畢竟是由人去維護的。取而代之的是Gradle采用了領域特定語言Groovy的配置,大大簡化了構建代碼的行數,比如在Maven中你要引入一個依賴:
<properties> <kaptcha.version>2.3</kaptcha.version> </properties> <dependencies> <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version>${kaptcha.version}</version> <classifier>jdk15</classifier> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies>
將其轉換成Gradle腳本
dependencies {
compile(‘org.springframework:spring-core:2.5.6‘)
compile(‘org.springframework:spring-beans:2.5.6‘)
compile(‘org.springframework:spring-context:2.5.6‘)
compile(‘com.google.code.kaptcha:kaptcha:2.3:jdk15‘)
testCompile(‘junit:junit:4.7‘)
}
2.Maven和Gradle對依賴項的scope有所不同。在Maven世界中,一個依賴項有6種scope,分別是complie(默認)、provided、runtime、test、system、import。而grade將其簡化為了4種,compile、runtime、testCompile、testRuntime。
3.Gradle支持動態的版本依賴。在版本號後面使用+號的方式可以實現動態的版本管理。
4.在解決依賴沖突方面Gradle的實現機制更加明確。使用Maven和Gradle進行依賴管理時都采用的是傳遞性依賴;而如果多個依賴項指向同一個依賴項的不同版本時就會引起依賴沖突。而Maven處理這種依賴關系往往是噩夢一般的存在。而Gradle在解決依賴沖突方面相對來說比較明確。
構建工具--Gradle