在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 給 tasks 排序
使用構(gòu)建腳本塊應(yīng)用插件
使用方法
獲取依賴列表
Logging
第 22 章 Java 插件
更多關(guān)于插件
從外部工具和庫記錄日志
調(diào)用 Ant 任務(wù)
22.9.Clean
Java 構(gòu)建入門
文件集合
依賴管理
建立項目
定位 tasks
構(gòu)建一個 WAR 文件
下載與安裝
使用其他的腳本配置項目
工具和集成開發(fā)環(huán)境
公共配置
擴展屬性
只能在構(gòu)建腳本中使用
通用配置
22.13.測試
構(gòu)建日志
文件樹
22.11.編譯 java
公共屬性
查找社區(qū)插件
使用 Gradle 圖形界面
總結(jié)
任務(wù)
局部變量
配置任意對象
導入一個Ant構(gòu)建
不能與subjects{},allprojects{}等結(jié)合使用
特點
失敗后繼續(xù)執(zhí)行構(gòu)建
孵化中的軟件開發(fā)插件
List 和 Map 集合
閉合作為方法的最后一個參數(shù)
War 插件 (未完成)
腳本 API
使用 Gradle 命令行
Java 插件
Task 規(guī)則
依賴管理的基礎(chǔ)知識
替換 tasks
22.7.1.Source Set 屬性
應(yīng)用插件
項目之間的依賴
任務(wù)
War
文件操作
聲明你的依賴
教程
編寫構(gòu)建腳本
改變Gradle的記錄內(nèi)容
Running your web application
構(gòu)建腳本代碼
22.12.增量Java編譯
Groovy JDK
跳過 tasks
倉庫
定義一個多項目構(gòu)建
發(fā)布 artifacts
短標記法
22.14.1.Manifest
補充
Standard Gradle plugins
使用其他的腳本配置任意對象
復制文件
總結(jié)
如何停止守護進程
使用已經(jīng)存在的任務(wù)
如何啟動Gradle的守護進程
Gradle 屬性 和 system 屬性
一個基礎(chǔ)的 Java 項目
Choosing a log level
查看特定依賴
屬性存取器
定義 tasks
集成插件
未來可能的改進
項目布局
在構(gòu)建中使用自定義Ant任務(wù)
Groovy 基礎(chǔ)
一個基本的 Groovy 項目
搖籃守護進程如何使構(gòu)建速度更快
創(chuàng)建一個發(fā)行版本
22.13.1.執(zhí)行測試
管理和配置
動態(tài)任務(wù)
22.13.2.調(diào)試
總結(jié)
外部的依賴
如何禁用Gradle的守護進程
跳過 up-to-date 的任務(wù)
概述
快捷的任務(wù)定義
軟件開發(fā)插件
項目 API
語言插件
自定義任務(wù)屬性
關(guān)于這本指南
22.15.上傳
插件DSL的限制
配置 tasks
多任務(wù)調(diào)用
可有可無的圓括號
API
守護進程何時會出錯
使用一個歸檔文件的內(nèi)容作為文件樹
22.13.3.測試過濾
在 Gradle中使用Ant
任務(wù)樹
定制War
Projects 和 tasks
終止 tasks
項目列表
任務(wù)列表
多項目的 Java 構(gòu)建
22.13.8.公共值
通過 DAG 配置
22.7.2.定義一個新的 source set
獲取構(gòu)建信息
使用同步任務(wù)
給 task 加入描述
怎樣抑制“please consider using the Gradle Daemon”消息
Locating files
22.8.Javadoc
網(wǎng)頁應(yīng)用快速入門
項目布局
什么是 Gradle 的守護進程
22.14.Jar
任務(wù)依賴
二進制插件
The Gradle Daemon
安裝 Gradle
介紹
排除任務(wù)
22.7.3.一些 source set 的例子
什么時候不使用Gradle守護進程
編寫自己的日志信息
定制項目
基礎(chǔ)插件
JVM 選項
22.13.6.測試分組
依賴管理
聲明變量
約束語法
孵化中的語言插件
收藏夾
外部的依賴
閉合委托對象
發(fā)布 JAR 文件
22.10.資源
Gradle 插件
16.1.使用 Ant 任務(wù)和 Ant 類型的構(gòu)建
Hello world
選擇執(zhí)行構(gòu)建
孵化中的集成插件
深入了解 Tasks
構(gòu)建腳本的基礎(chǔ)知識
使用資源設(shè)置
指定一組輸入文件
默認任務(wù)
插件的作用是什么
給 task 加入依賴
什么是依賴管理?
22.13.4.通過系統(tǒng)屬性執(zhí)行單獨測試
守護進程占用多大內(nèi)存并且能不能給它更大的內(nèi)存?
排除故障
準備階段
獲取任務(wù)具體信息
22.13.5.測試檢測
為什么會在機器上出現(xiàn)不只一個守護進程
為什么用 Groovy?
腳本插件
使用
Groovy 快速入門
創(chuàng)建歸檔文件
簡化任務(wù)名
使用插件的插件DSL
依賴配置
命令行
插件的類型
Gradle 構(gòu)建語言
Ant的屬性與引用
22.13.7.測試報告
創(chuàng)建 Eclipse 項目
給 tasks 排序
用法
獲取項目屬性列表
緩存
標準項目屬性
設(shè)置
資源設(shè)置

給 tasks 排序

任務(wù)的排序功能正在測試和優(yōu)化. 請注意, 這項功能在 Gradle 之后的版本里可能會改變.

在某些情況下, 我們希望能控制任務(wù)的的執(zhí)行順序, 這種控制并不是向上一張那樣去顯示地加入依賴關(guān)系. 最主要的區(qū)別是我們設(shè)定的排序規(guī)則不會影響那些要被執(zhí)行的任務(wù), 只是影響執(zhí)行的順序本身. 好吧, 我知道可能有點抽象.

我們來看看以下幾種有用的場景:

  • 執(zhí)行連續(xù)的任務(wù): eg. 'build' 從來不會在 'clean' 之前執(zhí)行.
  • 在 build 的一開始先運行構(gòu)建確認 (build validations): eg. 在正式的發(fā)布構(gòu)建前先確認我的證書是正確的.
  • 在運行長時間的檢測任務(wù)前先運行快速的檢測任務(wù)來獲得更快的反饋: eg. 單元測試總是應(yīng)該在集成測試之前被執(zhí)行.
  • 一個聚集 (aggregates) 某種特定類型的所有任務(wù)結(jié)果的任務(wù): eg. 測試報告任務(wù) (test report task) 包含了所有測試任務(wù)的運行結(jié)果.

目前, 有 2 種可用的排序規(guī)則: "must run after""should run after".

當你使用 “must run after” 時即意味著 taskB 必須總是在 taskA 之后運行, 無論 taskA 和 taskB 是否將要運行:

taskB.mustRunAfter(taskA)

"should run after" 規(guī)則其實和 "must run after" 很像, 只是沒有那么的嚴格, 在 2 種情況下它會被忽略:

  1. 使用規(guī)則來闡述一個執(zhí)行的循環(huán).
  2. 當并行執(zhí)行并且一個任務(wù)的所有依賴除了 “should run after” 任務(wù)其余都滿足了, 那么這個任務(wù)無論它的 “should run after” 依賴是否執(zhí)行, 它都可以執(zhí)行. (編者: 翻譯待商榷, 提供具體例子)

總之, 當要求不是那么嚴格時, “should run after” 是非常有用的.

即使有目前的這些規(guī)則, 我們?nèi)钥梢詧?zhí)行 taskA 而不管 taskB, 反之亦然.

例子 15.14. 加入 'must run after'

build.gradle

task taskX << {
    println 'taskX'
}
task taskY << {
    println 'taskY'
}
taskY.mustRunAfter taskX

gradle -q taskY taskX 的輸出

> gradle -q taskY taskX
taskX
taskY

例子 15.15. 加入 'should run after'

build.gradle

task taskX << {
    println 'taskX'
}
task taskY << {
    println 'taskY'
}
taskY.shouldRunAfter taskX

gradle -q taskY taskX 的輸出

> gradle -q taskY taskX
taskX
taskY

在上面的例子里, 我們?nèi)钥梢灾苯訄?zhí)行 taskY 而不去 taskX :

例子 15.16. 任務(wù)排序不影響任務(wù)執(zhí)行

gradle -q taskY 的輸出

> gradle -q taskY
taskY

為了在 2 個任務(wù)間定義 “must run after” 或者 “should run after” 排序, 我們需要使用 Task.mustRunAfter() 和 Task.shouldRunAfter() 方法. 這些方法接收一個任務(wù)的實例, 任務(wù)的名字或者任何 Task.dependsOn()可以接收的輸入.

注意 “B.mustRunAfter(A)” 或者 “B.shouldRunAfter(A)” 并不影響任何任務(wù)間的執(zhí)行依賴:

  • tasks A 和 B 可以被獨立的執(zhí)行. 排序規(guī)則只有當 2 個任務(wù)同時執(zhí)行時才會被應(yīng)用.
  • 在運行時加上 --continue, 當 A 失敗時 B 仍然會執(zhí)行.

之前提到過, “should run after” 規(guī)則在一個執(zhí)行循環(huán)中將被忽略:

例子 15.17. 'should run after' 任務(wù)的忽略

build.gradle

task taskX << {
    println 'taskX'
}
task taskY << {
    println 'taskY'
}
task taskZ << {
    println 'taskZ'
}
taskX.dependsOn taskY
taskY.dependsOn taskZ
taskZ.shouldRunAfter taskX

gradle -q taskX 的輸出

> gradle -q taskX
taskZ
taskY
taskX