鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 使用命令行操作
依賴管理實(shí)戰(zhàn)
配置遠(yuǎn)程倉(cāng)庫(kù)
安裝Gradle
簡(jiǎn)介
項(xiàng)目自動(dòng)化簡(jiǎn)介
配置子項(xiàng)目
Gradle強(qiáng)大的特性
自動(dòng)化測(cè)試
簡(jiǎn)介
掌握構(gòu)建生命周期
使用命令行操作
構(gòu)建Java項(xiàng)目
管理任務(wù)
構(gòu)建工具
連續(xù)傳遞的特性
用Gradle開發(fā)Web項(xiàng)目
聲明依賴
構(gòu)建塊
簡(jiǎn)介
測(cè)試Java應(yīng)用
java構(gòu)建工具
為什么選擇Gradle
拆分項(xiàng)目文件
單元測(cè)試
多項(xiàng)目打包
Gradle 起步
介紹這個(gè)Gradle項(xiàng)目
簡(jiǎn)介
自定義腳本
Gradle包裝器
簡(jiǎn)要概述依賴管理
項(xiàng)目模塊化

使用命令行操作

我們可以用Gradle命令來執(zhí)行特定的任務(wù),運(yùn)行一個(gè)任務(wù)需要你知道該任務(wù)的名稱,如果Gradle能夠告訴你有哪些任務(wù)可以執(zhí)行那豈不是很棒?Gradle提供了一個(gè)輔助的任務(wù)tasks來檢查你的構(gòu)建腳本,然后顯示所有的任務(wù),包含一個(gè)描述性的消息。

    $ gradle -q tasks

輸出如下:

    All tasks runnable from root project

    Build Setup tasks

    setupBuild - Initializes a new Gradle build. [incubating]
    wrapper - Generates Gradle wrapper files. [incubating]

    Help tasks
    ----------
    dependencies - Displays the dependencies of root project'grouptherapy'.
    dependencyInsight - Displays the insight into a specific dependency in root
    ? project 'grouptherapy'.
    help - Displays a help message
    projects - Displays the sub-projects of root project 'grouptherapy'.
    properties - Displays the properties of root project 'grouptherapy'.
    tasks - Displays the tasks runnable from root project 'grouptherapy' (some of
    ? the displayed tasks may belong to subprojects).

    Other tasks
    -----------
    groupTherapy

    To see all tasks and more detail, run with --all.

Gradle提供任務(wù)組的概念,簡(jiǎn)而言之就是將一些任務(wù)歸為一組,你可以執(zhí)行這個(gè)組里面所有的任務(wù),沒有分組的任務(wù)在Other tasks,任務(wù)分組后面會(huì)講到。

任務(wù)執(zhí)行

要執(zhí)行一個(gè)任務(wù),只需要輸入gradle + 任務(wù)名,Gradle確保這個(gè)任務(wù)和它所依賴的任務(wù)都會(huì)執(zhí)行,要執(zhí)行多個(gè)任務(wù)只需要在后面添加多個(gè)任務(wù)名。

任務(wù)名稱縮寫

Gradle提高效率的一個(gè)辦法就是能夠在命令行輸入任務(wù)名的駝峰簡(jiǎn)寫,當(dāng)你的任務(wù)名稱非常長(zhǎng)的時(shí)候這很有用,當(dāng)時(shí)你要確保你的簡(jiǎn)寫必須是唯一確定那個(gè)任務(wù),比如下面的情況:

    task groupTherapy << {
    ...
    }
    task generateTests << {
    ...
    }

這時(shí)候你使用gradle gT的時(shí)候Gradle就會(huì)報(bào)錯(cuò),因?yàn)橛卸鄠€(gè)任務(wù)匹配到gT

    $ gradle yG0 gT
    FAILURE: Could not determine which tasks to execute.
    * What went wrong:
    Task 'gT' is ambiguous in root project 'grouptherapy'. Candidates are:
    ? 'generateTests', 'groupTherapy'.
    * Try:
    Run gradle tasks to get a list of available tasks.

    BUILD FAILED

運(yùn)行的時(shí)候排除一個(gè)任務(wù)

比如運(yùn)行的時(shí)候你要排除yayGradle0,你可以使用-x命令來完成

    $ gradle groupTherapy -x yayGradle0
    :yayGradle1
    Gradle rocks
    :yayGradle2
    Gradle rocks
    :groupTherapy

運(yùn)行的時(shí)候Gradle排除了yayGradle0任務(wù)和它依賴的任務(wù)startSession。

命令行選項(xiàng)

  • -i:Gradle默認(rèn)不會(huì)輸出很多信息,你可以使用-i選項(xiàng)改變?nèi)罩炯?jí)別為INFO
  • -s:如果運(yùn)行時(shí)錯(cuò)誤發(fā)生打印堆棧信息
  • -q:只打印錯(cuò)誤信息
  • -?-h,--help:打印所有的命令行選項(xiàng)
  • -b,--build-file:Gradle默認(rèn)執(zhí)行build.gradle腳本,如果想執(zhí)行其他腳本可以使用這個(gè)命令,比如gradle -b test.gradle
  • --offline:在離線模式運(yùn)行build,Gradle只檢查本地緩存中的依賴
  • -D, --system-prop:Gradle作為JVM進(jìn)程運(yùn)行,你可以提供一個(gè)系統(tǒng)屬性比如:-Dmyprop=myValue
  • -P,--project-prop:項(xiàng)目屬性可以作為你構(gòu)建腳本的一個(gè)變量,你可以傳遞一個(gè)屬性值給build腳本,比如:-Pmyprop=myValue

  • tasks:顯示項(xiàng)目中所有可運(yùn)行的任務(wù)
  • properties:打印你項(xiàng)目中所有的屬性值