文章出處

原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1.7

翻譯:Android Studio 中文組(大錘譯

接續: Gradle(一) | Gradle(二)

通用任務

        將一個plugin運用到build file中時,會自動創建一系列的構建任務(build task)去運行。Java plugin和Android Plugin也都會如此。

我們對于任務的約定有以下四個:

  •         assemble任務,匯集所有項目輸出     
  •         check任務,運行所有校驗
  •         build任務,既匯集又校驗        
  •         clean任務,清除所有項目輸出

        assemble, check and build任務自己本身不做任何事情,它們只是plugin錨點,真正任務的是由plugin來添加執行。

這樣做的好處是,不管你在什么項目中,你都可以調用同樣的命令來執行。

        通過命令行,你可以得到更高級別的任務,命令如下:

gradle tasks

列出當前運行的所有任務,以及查看他們之間的依賴關系:

gradle tasks --all

注: Gradle會自動地檢測一個任務中申明的輸入和輸出。當重復執行兩次build任務時,Gradle會報告當前所有任務是UP-TO-DATE的狀態。

 
Java項目的任務

        Java plugin會創建兩個任務,分別掛到錨任務中,如下:

 
        assemble
                jar  This task creates the output.
        check
                test This task runs the tests.

 

  • jar任務是編譯執行Java源代碼。
  • test任務是運行unit test

 

通常,java項目中的任務只會用到assemble和check這兩個,更多的其他task詳見此處。

 
Android 任務

   Android的任務比通用的四大任務多了“connectedCheck”和“deviceCheck”,這是想要讓項目忽視設備是否連接,正常執行check任務。

  •         assemble任務,  匯集所有項目輸出
  •         check任務,運行所有校驗
  •         connectedCheck任務,運行所有需要鏈接設備或模擬器的校驗, 并行運行
  •         deviceCheck任務,運行調用遠程設備的校驗,運用于CI Servers
  •         build任務,既匯集又校驗
  •         clean任務,清除所有項目輸出

注:build任務不依賴與deviceCheck或connectedCheck

一個安卓的項目至少有兩個輸出,一是debug apk,二是release apk.這兩個輸出都有自己對應的錨任務,來實現它們各自的構建調用assemble任務時會同時調用assembleDebug和assembleRelease來保證有兩個輸出。

 
assemble
        - assembleDebug
        - assemblRelease

        Tip: Gradle 支持Camel命名方式的簡寫,比如在輸命令行時,可以用aR代替assembleRelease,如果沒有其他別的任務也是aR簡寫的話:

gradle  aR =  gradle assembleRelease

Check任務也有它們自己的依賴關系:

  •         check

                ---lint (目前還沒實現,汗一個)

  •         connectedCheck

                ---connectedInstrumentTest
                ---connectedUiAutomatorTest (這個也還沒實現……)

  •         deviceCheck

                依賴于任務創建時,其他插件實現測試的擴展點

最后, 為了能夠安裝卸載,Android plugin 為所有的build類型(debug,release,test)都創建了install/uninstall 任務,但需要signing。

 

文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()