您好,登錄后才能下訂單哦!
1、什么是Gradle
Gradle是一種結合了Ant和Maven兩者優勢的下一代構建工具,既有Ant構建靈活性的優點,也保留Maven約定優于配置的思想,在靈活構建和約定構建之間達到了很好的平衡。
2、安裝Gradle
(1)Gradle屬于解壓配置即可使用的軟件
下載解壓gradle-4.1-all.zip,例如解壓到:D:/ gradle-4.1
(2)window中設置gradle環境變量:
(3)開始->運行->cmd,輸入如下命令:gradle -v
3、Gradle構建腳本
每一gradle構建腳本都包含三個基本構建塊:project、task和property。每一個構建中至少包含一個project,進而包含一個或多個task(project和task可以分別理解為Ant構建工具中的<project>和<target>標簽)。project和task暴露的屬性可以用來控制構建,project本身自帶很多task并且和通過引入新的插件來引入新的task,task中包含各種構建方法來執行項目構建,例如:clean、build等常見的構建方法。
(1)、創建一個空白的build.gradle構建腳本
項目目錄結構(假如其中demo為D:\demo):
執行如下命令:
D:\demo>gradle tasks
執行結果輸出:
(2)、創建一個包含有java plugin的構建腳本
項目目錄結構(假如其中demo為D:\demo):
build.gradle 構建腳本內容:
apply plugin: 'java'
執行如下命令:
D:\demo>gradle tasks
執行結果輸出(部分):
總結:對比上面兩 個構建腳本gradle tasks 命令輸出的結果,加了apply plugin: 'java' 插件的構建腳本要多出了 Build tasks 等任務,從第二個 Build tasks 任務中能夠看到,gradle 構建的常用命令 build、clean等,由此可以知道通過引入插件,就可以增加相應的構建功能。
4、Gradle案例實戰
(1)、基于約定由于配置構建項目
基于約定的項目目錄結構圖(和maven默認目錄結構一致):
Gradle采用了Maven約定優于配置的思想,只要按照一定的項目目錄結構,構建插件將能都自動找到需要構建的文件進行項目構建,構建如此的簡單。下面是一個標準的項目目錄結構
項目目錄結構(假如其中demo為D:\demo):
Hello.java 內容(只是一個簡單的java類,自己可以任意寫)
public class Hello{ public static void main(String[] args){ System.out.println("hello ant"); } }
build.gradle 內容(只需要引入java 插件)
apply plugin: 'java'
進入D:\demo目錄在命令行執行 gradle clean build 命令后的目錄結構:
生成了標準的build輸出目錄
(2)、靈活定制構建項目
當構建歷史遺留項目,由于項目目錄結構的高度自由,gradle可以通過簡單的配置即可完成項目構建
下面是一個非標準的項目目錄結構(Hello.java并未位于標準的目錄中):
項目目錄結構(假如其中demo為D:\demo):
build.gradle 內容(只需要簡單的指定源文件目錄和編譯輸出目錄,即可定制構建)
apply plugin: 'java' sourceSets{ main{ java { srcDirs = ['src'] //指定了java源文件目錄為src而不是默認的src/main/java } } } buildDir = 'out' //指定輸出目錄為out而不是默認的build
進入D:\demo目錄在命令行執行 gradle clean build 命令后的目錄結構:
輸出目錄名稱變成了out,但是out中的編譯生成文件目錄等都按照了標準生成
通過上面兩個簡單的java項目(基于約定由于配置構建項目 和 靈活定制構建項目)構建能夠很明了的提現gradle基于約定構建的簡單快速和制定構建的靈活
5、Gradle優缺點
優點:基本結合了以往項目構建工具(Ant和Maven)的所有優點,是構建工具的首選
缺點:相對較高的理解學習成本
6、Gradle的特性
Gradle使用Groovy作為腳本語言的構建工具,而Groovy是基于JVM的動態語言,它對Java有著先天的兼容性,你甚至可以在構建腳本中編寫Java程序。
Gradle不像Ant和Maven那樣使用xml編寫腳本,它使用的是Groovy,這意味著你在編寫腳本的時候更像是在寫程序,而不是編寫充滿尖括號又不好閱讀xml文件。
Gradle像Maven一樣遵循約定優于配置的原則,也就是說你的項目只要按照標準約定搭建起來,你只需要做簡單的配置就可以構建你的項目了。
Gradle支持現有的Maven倉庫,所以你可以很方面地利用Maven上的所有庫。
Gradle支持依賴傳遞,也就是說當A庫依賴B庫的時候,你只需要引用A庫就可以了,Gradle會自動幫你依賴B庫。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。