开始使用gradle(二)
目錄
- 1. 準備
- 2. 開始使用
- 3. gradle執行命令
- 4. gradle 守護進程
- 5. gradle wrapper 包裝器
1. 準備
首先在mac下,需要進入到項目的目錄下才能使用gradle命令,所以需要配置一下gradle的環境變量。
在Finder中找到 應用程序 中的Android Studio , 右鍵 ->顯示包內容 -> 就會打開 Contents目錄, 此目錄下的gradle目錄下就有某一個gradle版本,
獲取到的路徑如下:
/Applications/Android\ Studio.app/Contents/gradle/gradle-5.1.1/bin
然后 chmod -x gradle 添加權限
open -e ~/.bash_profile在打開的.bash_profile文件中添加如下內容
GRADLE_HOME = /Applications/Android\ Studio.app/Contents/gradle/gradle-5.1.1/bin export GRADLE_HOME export PATH=$PATH:$GRADLE_HOME/bin然后讓他生效 source ~/.bash_profile
2. 開始使用
新建一個build.gradle文件,然后輸入以下內容
//task是一個任務,doLast 是一個action task helloWorld {println 'hello world!'doLast {println 'hello World! do last'} }輸入命令 gradle helloWorld,執行helloWorld這個task。結果如下:
> Configure project : hello world!> Task :helloWorld hello World! do last在task中 doLast是一個action,此外還有一個叫作doFirst的action。doFirst、doLast都是閉包。顧名思義就是再任務開始執行的開始和最后執行該閉包中的內容。
3. gradle執行命令
- -?, -h, –help 打印所有可用的命令行選項,包含描述信息
- -b, –build-file gradle構建腳本的默認命名約定為build.gradle ,使用這個命令可以執行一個指定名字的構建腳本(比如,gradle -b test.gradle)。
- –offline 可以在離線模式下構建,僅在本地緩存中檢查依賴是否存在。
- -i, –info 在默認設置中,Gradle構建不會提供大量的輸出信息。通過這個選項可以將Gradle的日志級別改變到INFO以獲得更多信息。
- -s, –stacktrace 如果構建在運行中出現錯誤,-s選項在有異常拋出時會打印簡短的堆棧跟蹤信息,幫助你進行調試。
- -q, –quiet 只在出錯的時候打印信息
- tasks :顯示項目中所有可運行的task,包括它們的描述信息。項目中應用的插件可能會提供一些額外的task。
- properties:顯示出項目中的所有可用的屬性。某些屬性是由Gradle的project對象提供的,project對象是一個構建的本質表現形式。其它的屬性都是用戶自行一的,要么來自于屬性文件或者命令行選項,要么是直接在構建腳本重定義的。
4. gradle 守護進程
gradle有一個命令–daemon可以用來開啟一個守護進程,這個守護進程以后臺方式運行。開啟完守護進程之后,下一次運行構建的將會變快,這是因為減少了啟動Gradle的開銷。
需要注意:
- 守護進程只會被創建一次
- 守護進程會在3小時空閑時間之后自動過期
- 想要重用守護進程,構建的時候要加上–daemon選項
5. gradle wrapper 包裝器
Gradle Wrapper,它是一個腳本,可以在計算機沒有安裝Gradle的情況下運行Gradle構建,并且能夠指定Gradle的版本,開發人員可以快速啟動并運行Gradle項目,而不必手動安裝,這樣就標準化了項目,從而提高了開發效率.AS在新建項目時會自帶Gradle Wrapper,這也是我們很少去單獨去下載安裝Gradle的原因
使用Wrapper被認為是最佳實踐,這樣在不同的機器上面,構建的版本就能夠保證統一。使用了包裝器的Gradle腳本非常適合作為自動化發布的一部分,比如持續集成。
總結
以上是生活随笔為你收集整理的开始使用gradle(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: RxJava学习-使用篇
- 下一篇: Gradle与project(三)
