91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

9. Gradle源代碼編譯以及源代碼分析

發布時間:2020-07-30 07:54:06 來源:網絡 閱讀:3916 作者:rongwei84n 欄目:開發技術

一. 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源代碼編譯


  1. 下載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. 解壓...


你會發現一個這樣的目錄結構:


9. Gradle源代碼編譯以及源代碼分析


其中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,直接解壓即可。如下:

9. Gradle源代碼編譯以及源代碼分析


解壓后,會有下面的目錄:

9. Gradle源代碼編譯以及源代碼分析


bin目錄下有gradle.bat,用來編譯其他項目的腳本,所以可以把bin目錄添加到環境變量里面,這樣在任意命令行目錄都可以執行gradle xxx


lib目錄是編譯出來的jar包,包含了很多module,后面如果我們修改了某個源代碼文件,編譯出jar包后,那就直接替換lib里面的jar,然后再去編譯其他的項目,就可以驗證我們的修改。


接下來會進行源代碼流程分析。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

佳木斯市| 镇江市| 公主岭市| 同仁县| 揭阳市| 牡丹江市| 龙州县| 西乌珠穆沁旗| 清镇市| 五寨县| 奉新县| 原阳县| 永德县| 扎囊县| 息烽县| 修武县| 开鲁县| 广灵县| 高雄县| 赫章县| 藁城市| 靖边县| 宁远县| 张家港市| 绥江县| 潜山县| 隆安县| 加查县| 大洼县| 新丰县| 横峰县| 鄢陵县| 嘉定区| 九江市| 三原县| 洛川县| 万州区| 神农架林区| 栾城县| 田阳县| 利川市|