当前位置: 首页 > news >正文

HarmonyOS 小游戏《对战五子棋》开发第3篇-项目配置文件全解析

从build-profile到oh-package,读懂鸿蒙项目的每一行配置

配置文件全景图

五子棋/ ├── build-profile.json5 ← 项目级构建配置 ├── oh-package.json5 ← 项目级依赖管理 ├── hvigorfile.ts ← 构建脚本 ├── hvigor/hvigor-config.json5 ← Hvigor配置 ├── AppScope/app.json5 ← 应用清单 ├── entry/ │ ├── build-profile.json5 ← 模块级构建配置 │ ├── oh-package.json5 ← 模块级依赖管理 │ └── src/main/module.json5 ← 模块清单

build-profile.json5(项目级)

{ "app": { "signingConfigs": [], // 签名配置 "products": [ { "name": "default", "signingConfig": "default", "compatibleSdkVersion": "5.0.0(12)", // 兼容SDK版本 "runtimeOS": "HarmonyOS", // 运行时OS "targetSdkVersion": "6.1.1(24)" // 目标SDK版本 } ], "buildModeSet": [ { "name": "debug" }, // 调试模式 { "name": "release" } // 发布模式 ] }, "modules": [ { "name": "entry", "srcPath": "./entry", "targets": [ { "name": "default", "applyToProducts": ["default"] } ] } ] }

关键字段解读:

  • compatibleSdkVersion:应用最低支持的SDK版本,低于此版本的设备无法安装
  • targetSdkVersion:应用目标SDK版本,决定可用的API范围
  • products:可以定义多个产品(如免费版/付费版),每个产品可以有不同的签名和配置
  • buildModeSet:构建模式,debug用于开发调试,release用于发布

oh-package.json5(项目级)

{ "modelVersion": "6.1.1", "description": "Gomoku game for HarmonyOS", "dependencies": {}, "devDependencies": { "@ohos/hypium": "1.0.21" } }
  • modelVersion:包管理模型版本
  • dependencies:运行时依赖
  • devDependencies:开发时依赖(如测试框架)
  • @ohos/hypium:华为官方单元测试框架

entry/build-profile.json5(模块级)

{ "apiType": "stageMode", "buildOption": {}, "targets": [ { "name": "default", "runtimeOS": "HarmonyOS" } ] }

apiType有两个选项:

  • stageMode:Stage模型(推荐,本项目使用)
  • faMode:FA模型(旧版,不推荐)

entry/oh-package.json5(模块级)

{ "name": "entry", "version": "1.0.0", "description": "Gomoku entry module", "main": "", "author": "", "license": "Apache-2.0", "dependencies": {} }

hvigorfile.ts

// 项目级构建脚本exportdefault{system:require('@ohos/hvigor-ohos-plugin').hapTasks}

Hvigor是鸿蒙的构建工具,使用TypeScript编写构建脚本,比Gradle的Groovy更易调试。

配置文件之间的关系

app.json5 (应用身份) ↓ 定义了应用级别信息 module.json5 (模块能力) ↓ 定义了模块的Ability和页面 main_pages.json (页面路由) ↓ 注册了所有页面路径 build-profile.json5 (构建规则) ↓ 定义了如何编译 oh-package.json5 (依赖管理) ↓ 定义了项目依赖

实际开发中的常见配置场景

1. 修改应用名称

编辑AppScope/resources/base/element/string.json

{"name":"app_name","value":"五子棋"}

2. 添加新页面

main_pages.json中注册:

{ "src": ["pages/Index", "pages/NewPage"] }

3. 修改启动背景色

编辑entry/src/main/resources/base/element/color.json

{"name":"start_window_background","value":"#F5F5DC"}

4. 适配深色模式

创建dark/element/color.json覆盖特定颜色:

{"name":"start_window_background","value":"#333333"}

总结

鸿蒙项目的配置虽然文件多,但每个文件职责单一:

  • app.json5管应用身份
  • module.json5管模块能力
  • build-profile.json5管构建规则
  • oh-package.json5管依赖
  • 资源json管显示内容

理解这些配置文件的职责边界,是高效开发鸿蒙应用的基础。

附:

http://www.jsqmd.com/news/1132454/

相关文章:

  • AI 已经改变工作方式,我们该怎么适应这场变化?
  • Codex 使用 Playwright Test Agents
  • 换种不同的方式调用WCF服务[提供源代码下载]
  • 3步解锁中医AI:如何让“仲景“大语言模型成为你的智能中医助手
  • 程序员的语言“艳遇史”(四) ——数学系师姐forth
  • 尽量减少对DOM的操作
  • mnist-数据集的学习-3.6手写数字识别
  • Tableau新手实战指南:3天做出可交付业务看板
  • 【学习记录】Week14(一):信息泄露系统化方法论与 ORW 基础体系构建
  • 用虚拟机实际体验Google Chromium OS (Chrome OS) Pre-Built
  • FastAPI 新手入门第 8 篇:让 /docs 更像一份 API 文档
  • 【 CLI与GUI两种AI编程范式技术解析】终端Agent与可视化IDE架构对比
  • ClaudeCode Skills:IDE内可工程化的AI编程技能体系
  • 从 Agent Memory 到 Object-Scoped Context 的思考
  • !ccstatusline:让你的 Claude Code 状态栏直接封神!
  • 华为防火墙Web登录配置:eNSP环境搭建与安全策略详解
  • JQuery Tips(4)----一些关于提高JQuery性能的Tips
  • 软件:STM32-F1系列-存储器映像(2026/7/5)
  • 基于自然语言的软件工程和程序设计(中)
  • AI模型安全测试革命:从手工POC到自动化Fuzz框架的工程实践
  • GitHub Copilot 实战指南:结对编程式AI辅助开发核心逻辑与7大高频场景
  • 新手流量池实战:从零搭建你的第一个桌面自动化工作流
  • 判断dll是debug还是release,这是个问题
  • SpringBoot JUnit 教程
  • Qt界面底层实现浅谈: 多渲染后端的分层架构
  • CAF 与 PDAF 监控机制对比:从 3 种检测逻辑到触发条件差异分析
  • 126、DyHead 动态检测头替换 YOLOv11 Head:Scale+Space+Task 三维注意力的实现
  • 宝鸡装修必看:安柏特全屋定制厂环保板材解析
  • 视频孪生时空感知技术详解
  • C# 基础入门指南:从零开始学习 C# 编程