編譯構建工具DevEco Hvigor(以下簡稱Hvigor)是一款基於TS實現的構建任務編排工具,主要提供任務管理機制,包括任務註冊編排、工程模型管理、配置管理等關鍵能力,提供專用於構建和測試應用的流程和可配置設定。
DevEco Studio使用構建工具Hvigor來自動執行和管理構建流程,實現應用/服務構建任務流的執行,完成HAP/APP的構建打包。
Hvigor可獨立於DevEco Studio執行,這意味著,你可以在DevEco Studio內、命令列工具或是整合伺服器上構建應用。無論您從命令列工具或是DevEco Studio上構建專案,構建過程的輸出都將相同。
瞭解任務
任務是Hvigor構建過程中的執行基本單元,任務中通常包含一段編譯過程處理的可執行程式碼;一個任務可以依賴其他多個任務。Hvigor任務排程執行時透過解析依賴關係確定任務執行時序。
UP-TO-DATE
任務標識,表示任務未實際執行。Hvigor任務增量跳過機制,在二次執行任務時檢測任務輸入輸出條件未發生變化,則任務跳過執行提高構建效率。例如
hvigor UP-TO-DATE ::PackageApp...
Finished
任務執行完成標識,表示任務已執行完成。例如
hvigor Finished ::PackageApp... after 310 ms
註冊任務
使用HvigorNode節點物件註冊任務。
- 編輯工程下hvigorfile.ts檔案。
// 匯入模組
import { getNode, HvigorNode, HvigorTask } from '@ohos/hvigor';
- 編寫任務程式碼。
// 獲取當前hvigorNode節點物件
const node: HvigorNode = getNode(__filename);
// 註冊Task
node.registerTask({
name: 'customTask',
run() {
console.log('this is Task');
}
});
- 執行任務。
使用hvigor命令列工具執行任務。例如
hvigorw customTask
- 檢視任務執行結果。
PS D:\SDAutoTestRunInfo\AppDemo\MyApplication > hvigorw customTask
this is Task
> hvigor Finished :: customTask... after 2 ms
> hvigor BUILD SUCCESSFUL in 2 s 211 ms