現(xiàn)在熬甫,搞APP開發(fā)漆弄,編譯/打包等問題成為痛點(diǎn),例如:
- 一個(gè)APP有多個(gè)版本批狱,Release版阳懂、Debug版梅尤、Test版,還有現(xiàn)在做的比較多的岩调,多渠道打包巷燥,針對(duì)不同的應(yīng)用市場(chǎng)打不同的渠道包,雖然可以配置Android.mk,但需要依賴整個(gè)Android源碼号枕,而且還不能完全滿足條件缰揪;
- library 工程我們需要編譯成jar包,然后發(fā)布給其他應(yīng)用開發(fā)者使用堕澄,一般在eclipse上就需要export;如果這一切自動(dòng)編譯成jar包邀跃,對(duì)開發(fā)者來(lái)說(shuō),真是福利滿滿巴茏稀拍屑;
那如果使用構(gòu)建工具,我們就會(huì)更好的解決構(gòu)建過程中的各種問題坑傅。對(duì)于構(gòu)建僵驰,很多人會(huì)立馬想到build或者是make,就是根據(jù)輸入信息然后做一堆事情唁毒,最后得到Aritifact;例如:make構(gòu)建工具蒜茴,就是根據(jù)Makefile文件里面寫的規(guī)則,執(zhí)行相應(yīng)的命令浆西,最后得到產(chǎn)物粉私;下面我們來(lái)詳情介紹Gradle相關(guān)的內(nèi)容;此系列文章為學(xué)習(xí)總結(jié)近零,理解或?qū)嵺`會(huì)有錯(cuò)誤的地方诺核,還希望各位大佬指出,促進(jìn)學(xué)習(xí)久信!
Gradle 介紹
在Gradle火爆之前窖杀,我們常見的構(gòu)建工具是ANT,后來(lái)進(jìn)化成Maven,借鑒網(wǎng)上的說(shuō)法:Maven編譯規(guī)則是XML來(lái)編寫的裙士,XML雖然通俗易懂入客,但是很難再XML文件中面熟if{某條件成立,編譯某文件}else{編譯其他文件}
這樣有不同條件的任務(wù);Gradle使用的是Groovy動(dòng)態(tài)語(yǔ)言進(jìn)行編寫桌硫,Groovy是基于java并且拓展java夭咬,而且Gradle除了靈活的語(yǔ)言編寫構(gòu)建規(guī)則外,還有一點(diǎn)是領(lǐng)域相關(guān)語(yǔ)言DSLDomain Specific Language
铆隘≈宀海總結(jié)來(lái)說(shuō),可以發(fā)現(xiàn)Gradle構(gòu)建工具更能讓開放者上手咖驮。下面我這邊咱們來(lái)慢慢學(xué)習(xí):
Groovy 語(yǔ)言簡(jiǎn)單介紹
Groovy之前我這邊也簡(jiǎn)單介紹過,這邊有一點(diǎn)需要注意的是:當(dāng)我們執(zhí)行Groovy腳本時(shí)训枢,Groovy會(huì)先將其編譯成Java 類字節(jié)碼托修,然后通過JVM來(lái)執(zhí)行這個(gè)java類。
Groovy 開發(fā)環(huán)境
Groovy 官方網(wǎng)站地址恒界,部署開發(fā)環(huán)境還是相對(duì)簡(jiǎn)單:
- $ curl -s get.sdkman.io | bash
- $ source "$HOME/.sdkman/bin/sdkman-init.sh"
- $ sdk install groovy
- $ groovy -version
以上就安裝完畢睦刃;
輸入-virtual-machine:~$ groovyConsole
可以打開一個(gè)用Groovy寫的圖形化的GUI,非常簡(jiǎn)潔好用十酣,
- Ctrl+R 執(zhí)行窗口代碼涩拙,如果有代碼段被選中則執(zhí)行選中的代碼。
- Ctrl+W 清空輸出面板耸采。默認(rèn)不清空兴泥,可以在菜單-View里勾選"Auto Clean Output On Run"在每次執(zhí)行前自動(dòng)清空。默認(rèn)每行代碼都打印到輸出面板虾宇,可以在菜單-View里取消勾選"Show Script in output"搓彻。
- Ctrl+L 編譯,語(yǔ)法錯(cuò)誤很容易就爆出來(lái)了哦嘱朽。
- Ctrl+I 查看最后運(yùn)行的表達(dá)式的對(duì)象信息旭贬,包括所在類的所有方法。
- Ctrl+J 查看最后運(yùn)行的代碼里的所有變量信息搪泳,和所在類的所有方法稀轨。
- Ctrl+T 查看生成的抽象語(yǔ)法樹(AST)的類。
如果程序執(zhí)行時(shí)間比較長(zhǎng)岸军,想要終止程序奋刽,記得在菜單--Script里勾選"Allow Interruption",否則點(diǎn)擊"Interrupt Running Script"是沒有用的凛膏。
面板最下面一行是狀態(tài)顯示欄杨名,左邊顯示程序執(zhí)行情況,最右邊是光標(biāo)所在的row:column
一般的小腳本不需要導(dǎo)入jar包猖毫,如果需要外部jar包的時(shí)候台谍,通過菜單--Script里的"add jar to classpath"或者"add directory to classpath"就可以使用了,不過這個(gè)在每次打開的時(shí)候都需要設(shè)置,所以如果是常用的jar包趁蕊,可以直接把它們放到groovy的lib目錄里面這樣每次啟動(dòng)的時(shí)候都會(huì)自動(dòng)加載坞生。
以上準(zhǔn)備工作做完,即將進(jìn)入我們的學(xué)習(xí)Gradle之旅掷伙,歡迎關(guān)注后續(xù)更新
是己,相互學(xué)習(xí)