現(xiàn)在,搞APP開發(fā),編譯/打包等問題成為痛點,例如:
- 一個APP有多個版本,Release版、Debug版、Test版,還有現(xiàn)在做的比較多的,多渠道打包,針對不同的應用市場打不同的渠道包,雖然可以配置Android.mk,但需要依賴整個Android源碼,而且還不能完全滿足條件;
- library 工程我們需要編譯成jar包,然后發(fā)布給其他應用開發(fā)者使用,一般在eclipse上就需要export;如果這一切自動編譯成jar包,對開發(fā)者來說,真是福利滿滿??;
那如果使用構(gòu)建工具,我們就會更好的解決構(gòu)建過程中的各種問題。對于構(gòu)建,很多人會立馬想到build或者是make,就是根據(jù)輸入信息然后做一堆事情,最后得到Aritifact;例如:make構(gòu)建工具,就是根據(jù)Makefile文件里面寫的規(guī)則,執(zhí)行相應的命令,最后得到產(chǎn)物;下面我們來詳情介紹Gradle相關(guān)的內(nèi)容;此系列文章為學習總結(jié),理解或?qū)嵺`會有錯誤的地方,還希望各位大佬指出,促進學習!
Gradle 介紹
在Gradle火爆之前,我們常見的構(gòu)建工具是ANT,后來進化成Maven,借鑒網(wǎng)上的說法:Maven編譯規(guī)則是XML來編寫的,XML雖然通俗易懂,但是很難再XML文件中面熟if{某條件成立,編譯某文件}else{編譯其他文件}這樣有不同條件的任務;Gradle使用的是Groovy動態(tài)語言進行編寫,Groovy是基于java并且拓展java,而且Gradle除了靈活的語言編寫構(gòu)建規(guī)則外,還有一點是領(lǐng)域相關(guān)語言DSLDomain Specific Language??偨Y(jié)來說,可以發(fā)現(xiàn)Gradle構(gòu)建工具更能讓開放者上手。下面我這邊咱們來慢慢學習:
Groovy 語言簡單介紹
Groovy之前我這邊也簡單介紹過,這邊有一點需要注意的是:當我們執(zhí)行Groovy腳本時,Groovy會先將其編譯成Java 類字節(jié)碼,然后通過JVM來執(zhí)行這個java類。
Groovy 開發(fā)環(huán)境
Groovy 官方網(wǎng)站地址,部署開發(fā)環(huán)境還是相對簡單:
- $ curl -s get.sdkman.io | bash
- $ source "$HOME/.sdkman/bin/sdkman-init.sh"
- $ sdk install groovy
- $ groovy -version
以上就安裝完畢;
輸入-virtual-machine:~$ groovyConsole
可以打開一個用Groovy寫的圖形化的GUI,非常簡潔好用,
- Ctrl+R 執(zhí)行窗口代碼,如果有代碼段被選中則執(zhí)行選中的代碼。
- Ctrl+W 清空輸出面板。默認不清空,可以在菜單-View里勾選"Auto Clean Output On Run"在每次執(zhí)行前自動清空。默認每行代碼都打印到輸出面板,可以在菜單-View里取消勾選"Show Script in output"。
- Ctrl+L 編譯,語法錯誤很容易就爆出來了哦。
- Ctrl+I 查看最后運行的表達式的對象信息,包括所在類的所有方法。
- Ctrl+J 查看最后運行的代碼里的所有變量信息,和所在類的所有方法。
- Ctrl+T 查看生成的抽象語法樹(AST)的類。
如果程序執(zhí)行時間比較長,想要終止程序,記得在菜單--Script里勾選"Allow Interruption",否則點擊"Interrupt Running Script"是沒有用的。
面板最下面一行是狀態(tài)顯示欄,左邊顯示程序執(zhí)行情況,最右邊是光標所在的row:column
一般的小腳本不需要導入jar包,如果需要外部jar包的時候,通過菜單--Script里的"add jar to classpath"或者"add directory to classpath"就可以使用了,不過這個在每次打開的時候都需要設(shè)置,所以如果是常用的jar包,可以直接把它們放到groovy的lib目錄里面這樣每次啟動的時候都會自動加載。
以上準備工作做完,即將進入我們的學習Gradle之旅,歡迎關(guān)注后續(xù)更新
,相互學習