Jenkins 搭建鴻蒙打包

在這里插入圖片描述

1、創建流水線工程

選擇 Freestyle project

在這里插入圖片描述

2、配置模板倉庫、憑證

配置倉庫地址

[圖片]

創建憑證,憑證選擇賬號-密碼(能夠訪問該倉庫的個人或管理員 Gitlab 賬密)

在這里插入圖片描述

到這里執行構建,便可以克隆倉庫到工作目錄

3、安裝插件

3.1 Rebuilder

方便打包任務直接 Rebuild

在這里插入圖片描述

3.2 Build with Parameters

方便構建任務配置參數,進行構建

在這里插入圖片描述

4、子模塊拉取

我喜歡把游戲資源單獨放在一個倉庫中,以子模塊方式依賴

配置 Advanced sub-modules behaviours,拉取游戲變體

  • clone depth:克隆深度配置 1,減少克隆時間

在這里插入圖片描述

5、清除工作空間

配置 Clean after checkout,情況是:不是當前分支的子模塊刪除(分支切換時發現子模塊內容仍然存在,需要刪除)

在這里插入圖片描述

保險起見,確保每次構建干凈,刪除整個工作空間

在這里插入圖片描述

6、構建命令

在 Jenkins 構建參數定義一個變量 BuildType,區分執行不同的命令構建 app 或 hap 包

在這里插入圖片描述

6.1 錯誤:Invalid value of ‘DEVECO_SDK_HOME’ in the system environment path

Jenkins 配置環境變量 DEVECO_SDK_HOME,指向的是 DevEco Studio 安裝目錄下的 sdk

Jenkins -> Manager Jenkins -> System

6.2 錯誤:Unsupported modelVersion of Hvigor 5.0.5

使用 where 命令查看所指向的可執行文件目錄

where hvigorw

本機正常工程執行,輸出的是 DevEco Sdutio 安裝目錄下的 ../tools/hvigor/bin/hvigorw.bat

Jenkins 打包工作目錄所在工程執行錯誤,輸出的是系統環境變量配置的其他路徑(這個可能是因為我之前安裝其他版本時配置的 cmd-tools

解決:
原因是 Hvigorw 所執行版本不一致,刪除系統環境變量的配置,使用 DevEco Sdutio 安裝目錄下的配置

6.3 Error Message: SDK component missing.

解決:

同樣的,配置上述提到的環境變量 DEVECO_SDK_HOME,指向 DevEco Studio 安裝目錄下的 sdk

如果仍然不生效,配置 Jenkins 環境變量后重啟 Jenkins 服務

6.4 找不到工程里面本地依賴的 har 包

在 Jenkins 中新增 Windows batch command 配置,在項目克隆下來之后,執行一次 ohpm install **.har 安裝本地依賴

示例:

ohpm install entry/test.har (entry 是項目相對路徑)

Tip:如果是在 DevEco 打包時報錯找不到模塊

注意:這個 plugin 第三方模塊是 npm 包,本地依賴是 npm 包轉 har 包

npm install plugin@[版本號]

6.5 找不到 ohpm

配置環境變量,執行DevEco studio 安裝目錄下的 ./tools/ohpm/bin

7、重置工作空間

  • 關閉 Jenkins 服務
  • 在 Jenkins 安裝目錄修改 jenkins.xml,指定 JENKINS_HOME 為新目錄
  • 復制原先 Jenkins 工作目錄所有內容到新目錄(否則需要重新配置 Jenkins)
  • 重啟 Jenkins 服務

重啟 Jenkins 服務

按 Win + R,輸入 services.msc,然后按回車。在服務列表中,找到名為 Jenkins 的服務右鍵重啟

查看是否已修改成功

Jenkins -> Manager Jenkins -> System

8、產物歸檔

Jenkins 配置 Archive the artifacts,只需要配置項目的相對路徑

示例:

entry/build/default/outputs/default/entry-default-signed.hap,build/outputs/default/HarmonyH5Mb2-default-signed.app

當然有時候 hap、app 產物名稱可能跟對項目不同而變化,你可以通過編寫鴻蒙插件對產物進行重命名
(鴻蒙插件類似 Android 的 gradle 插件,參與打包構建過程)

當然,產物支持通配符配置

entry/build/default/outputs/default/.hap,build/outputs/default/.app

9、進程占用解鎖

特別是 window 環境下,并發構建容易觸發進程占用工作目錄下的某個文件,導致清空工作目錄時無法刪除文件,觸發報錯不能正常打包

這時候你可能需要在打包前或打包結束后對工作目錄或頻繁出現占用的文件進行解鎖,你可以使用解鎖工具 Lockhunter,支持命令行調用

其他

輸出環境變量

echo %JENKINS_HOME%

查看命令路徑

where hdc

Jenkins 小坑

有時候你想把一段代碼放到一個Execute Windows batch command中執行,你可能會遇到前幾行代碼執行了,在某行代碼執行完之后中斷了,后面代碼未執行(猜想:可能是那樣代碼執行完返回了退出)

解決:

Execute Windows batch command 支持配置多個,你可以把中斷執行后的代碼配置到一個新建的 Execute Windows batch command

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92783.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【SpringBoot】02 基礎入門-什么是Spring Boot?:Spring與SpringBoot

文章目錄1、Spring能做什么1.1、Spring的能力1.2、Spring的生態1.3、Spring5重大升級1.3.1、響應式編程1.3.2、內部源碼設計2、為什么用SpringBoot2.1、SpringBoot優點2.2、SpringBoot缺點3、時代背景3.2、分布式分布式的困難分布式的解決3.3、云原生上云的困難4、如何學習Spri…

FFmpeg 編譯安裝和靜態安裝

FFmpeg 編譯安裝和靜態安裝 簡介 FFmpeg 是一個領先的多媒體框架,能夠解碼、編碼、轉碼、復用、解復用、流化、過濾和播放幾乎所有人類和機器創建的格式。本指南將詳細介紹如何在 CentOS 8.5.2111 系統上從源代碼編譯并安裝 FFmpeg 6.1.1 版本。從源代碼編譯安裝可…

人大BABEC地平線高效率具身導航!Aux-Think:探索視覺語言導航中數據高效的推理策略

作者: Shuo Wang1,3^{1,3}1,3, Yongcai Wang1^{1}1, Wanting Li1^{1}1 , Xudong Cai1^{1}1, Yucheng Wang3^{3}3, Maiyue Chen3^{3}3, Kaihui Wang3^{3}3, Zhizhong Su3^{3}3, Deying Li1^{1}1, Zhaoxin Fan2^{2}2單位:1^{1}1中國人民大學,2^…

01. maven的下載與配置

1.maven的下載與初步配置a.下載并配置倉庫地址下載maven壓縮包,并解壓,解壓后應有如下幾個文件點擊conf,打開settings.xml(我用的VScode打開的),我們需要聲明一下內部倉庫的地址,以及私服的一些…

1701. 請輸出所有的3位對稱數

問題描述請輸出所有的 33 位對稱數,對稱數指的是一個整數 nn 正過來和倒過來是一樣的,比如:101、121、282…101、121、282…請從小到大輸出符合條件的3位對稱數,每行 11 個。輸入無。輸出從小到大按題意輸出符合條件的數&#xff…

C++算法·排序

排序的定義 這個不用說吧 就是根據某個條件對一個數列進行有序的操作 例如要求從小到大排序、從大到小排序等等 排序的分類 比較排序(Comparison(Comparison(Comparison Sorts)Sorts)Sorts) 特點:通過元素間的比較決定順序 時間復雜度下限:O(nO(nO(n…

微服務項目中的注冊中心——Nacos配置

從零開始:Nacos服務注冊與配置中心實戰教程 Nacos(Dynamic Naming and Configuration Service)是阿里巴巴開源的服務發現、配置管理工具,集注冊中心與配置中心于一體,廣泛應用于微服務架構。本文將從環境搭建到實戰配…

日期格式化成英文月,必須指定語言環境

如果不指定Locale.ENGLISH 在有些JDK下 輸出6月 INV USD 314,791.77,DUE 25-07 [PAID USD 503,389.56 ON 2025-07-16]Mar INV USD 52,042.00,DUE 25-07 [PAID USD 52,042.00 ON 2025-08-11]所以必…

【6】Transformers快速入門:Transformer 的注意力層 是啥?

一句話看懂注意力層作用:讓 AI 像人一樣 “抓重點” (比如讀“貓追老鼠”,自動聚焦 “追” 這個動作,忽略無關詞)1. 為什么需要注意力? 問題場景(翻譯例子): 英文&#x…

集合,完整擴展

目錄 前言: 一、List接口 1.1 ArrayList 1.2 LinkedList 1.3 Vector 二、Set接口 2.1 HashSet 2.2 TreeSet 2.3 LinkedHashSet 三、應用選擇 前言: 本篇文章重點梳理 List 接口和 Set 接口的核心內容,結合代碼案例幫大家吃透它們的…

【doris基礎與進階】3-Doris安裝與部署

安裝前的準備 在windows系統上通過vmwareubuntu 22.04的方式進行安裝,由于資源有限,在同1臺機器上同時安裝fe和be(broker本次不安裝,極簡化安裝),安裝版本為2.1.10,2.x版本架構不會有大的變化&a…

關于數據結構6-哈希表和5種排序算法

哈希表1哈希算法將數據通過哈希算法映射成一個鍵值,存取都在同一個位置實現數據的高效存儲和查找,將時間復雜度盡可能降低至O(1)2哈希碰撞多個數據通過哈希算法得到的鍵值相同,成為產生哈希碰撞3哈希表:構建哈希表存放0-100之間的…

AWT與Swing深度對比:架構差異、遷移實戰與性能優化

全面對比分析Java AWT與Swing GUI框架的架構差異、性能表現和適用場景,提供完整的AWT到Swing遷移實戰指南,包含15代碼示例、性能測試數據、最佳實踐建議,助你做出明智的技術選型和實現平滑遷移。 Java AWT, Swing, GUI框架對比, 代碼遷移, 性…

git倉庫檢測工具

介紹 Gitleaks 是一款用于檢測git 倉庫、文件以及任何你想通過 git 傳遞的信息(例如密碼、API 密鑰和令牌)的工具stdin。如果你想了解更多關于檢測引擎工作原理的信息,請查看這篇博客:正則表達式(幾乎)就是你所需要的一切。 ? ~/code(master) gitleaks git -v○│╲│…

【4】Transformers快速入門:自然語言模型 vs 統計語言模型

一句話關系總結 統計語言模型 自然語言模型的“數學基礎” (就像加減乘除是數學的基礎,統計模型是AI學說話的基礎工具)區別對比表(小白版)維度統計語言模型自然語言模型本質用數學公式算句子概率用神經網絡模仿人腦理…

[激光原理與應用-252]:理論 - 幾何光學 - 傳統透鏡焦距固定,但近年出現的可變形透鏡(如液態透鏡、彈性膜透鏡)可通過改變自身形狀動態調整焦距。

一、液態透鏡:電潤濕效應驅動曲率變化基本結構液態透鏡由兩種互不相溶的液體(如導電水溶液與絕緣硅油)封裝在透明圓筒形容器中構成。容器壁經疏水處理,使水溶液呈圓頂型聚集在中心,與硅油形成凸狀曲面。工作原理電潤濕…

wordpress數據庫導入時的#1044錯誤

在wordpress網站數據庫文件.sql導入到數據庫時,發生錯誤,錯誤提示如下:#1044 – Access denied for user ‘wodepress_com’’localhost’ to database ‘wodepress’。 這個錯誤表明用戶wodepress_com沒有權限訪問數據庫wodepress。以下是解…

微服務ETCD服務注冊和發現

1.什么是注冊中心 注冊中心主要有三種角色: 服務提供者(RPC Server):在啟動時,向 Registry 注冊自身服務,并向 Registry 定期發送心跳匯報存活狀態。 服務消費者(RPC Client)&…

計算機網絡---默認網關(Default Gateway)

一、默認網關的定義 默認網關(Default Gateway)是一個網絡設備(通常是路由器、防火墻或三層交換機)的IP地址,它是本地網絡中的設備訪問其他網絡(如外網、其他子網)時,數據報文的“第…

OpenBMC中libgpio架構與驅動交互全解析:從硬件映射到應用控制

1. libgpio概述與核心定位 libgpio作為OpenBMC中GPIO管理的核心庫,扮演著連接硬件驅動與上層應用的橋梁角色。它通過標準化的接口抽象了不同硬件平臺的GPIO操作細節,使得電源控制、傳感器監控等關鍵功能能夠以統一的方式訪問GPIO資源。 1.1 libgpio在Ope…