您好,登錄后才能下訂單哦!
一. Gradle簡介
Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化構建工具。它使用一種基于Groovy的特定領域語言(DSL)來聲明項目設置,拋棄了基于XML的各種繁瑣配置。---來源于百度
對于自己而言,作為一個Android程序員,我自己使用就是用它來編譯android程序,以前用ant,現在用gradle。
但是個人覺得在android studio gradle屬性又多又亂,不知道總共有哪些屬性;同時對于框架,自己也不喜歡黑盒使用它,總覺得心里沒底,所以想把Gradle的源代碼研究一遍。
二. Gradle和Groovy關系
Groovy是一種類似Java的編程語言,語法就像在Java里面糅合了很多腳本語言的特性,比如def定義變量
def val val = "abc" val = 1
類似的寫法,還有Gpath以及閉包等等,大家最好去下面的網站看看Groovy語法,然后對著敲敲。這對自己理解Gradle配置有一定的好處。
那Gradle就是利用Groovy和Java語言編寫的一款自動化構建工具。
Groovy官方教程,語法教程
Groovy github源代碼
三. Gradle源代碼編譯
下載Gradle源代碼
Gradle源代碼下載
下載的時候,選擇src即可;本來自己下載了all,但是后面發現不對。編譯的話需要下載src。
就像這樣的:
gradle-4.0-milestone-2-src.zip 17-May-2017 14:05 +0000 21.28M gradle-4.0-milestone-2-bin.zip 17-May-2017 14:05 +0000 64.28M gradle-4.0-milestone-2-all.zip 17-May-2017 14:05 +0000 85.43M gradle-4.0-milestone-1-src.zip 28-Apr-2017 07:04 +0000 20.70M gradle-4.0-milestone-1-bin.zip 28-Apr-2017 07:04 +0000 64.11M gradle-4.0-milestone-1-all.zip
2. 解壓...
你會發現一個這樣的目錄結構:
其中gradlew.bat是windows環境下Gradle源代碼自身編譯的腳本,gradlew應該是linux下面的,我沒有去測試。
注意!這個不是gradle!! gradle.bat是Gradle去編譯其他項目的腳本。
所以,我們最開始的時候,是沒有Gradle環境的,需要編譯編譯一個Gradle環境出來,所以這里我們只有gradlew.bat
3. 編譯
打開一個命令行,把gradle.bat拖進去,后面接著輸入assemble
也就是:
e:\work_space\gradle-source-from-csdn\gradle-3.1>E:\work_space\gradle-source-fro
m-csdn\gradle-3.1\gradlew.bat assemble
按道理來說,直接雙擊運行gradlew.bat也是可以的,不過我是保險起見,按上面的方法(被問題搞怕了)。
4. 編譯結果
編譯的時候它會下載不少jar,需要一點時間。
編譯完畢后在源代碼目錄下會有一個build目錄,進去后有個distributions目錄,再進去,里面有編譯好的Gradle環境包 xxx-bin.zip,直接解壓即可。如下:
解壓后,會有下面的目錄:
bin目錄下有gradle.bat,用來編譯其他項目的腳本,所以可以把bin目錄添加到環境變量里面,這樣在任意命令行目錄都可以執行gradle xxx
lib目錄是編譯出來的jar包,包含了很多module,后面如果我們修改了某個源代碼文件,編譯出jar包后,那就直接替換lib里面的jar,然后再去編譯其他的項目,就可以驗證我們的修改。
接下來會進行源代碼流程分析。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。