示例：配置工程级和模块级的自定义参数并通过切换product来展示不同的message。

## 新建工程并创建一个har模块

在工程级别的build-profile.json5使用以下配置，目的是为了实现在所有模块中都可以使用到productMessage自定义参数。

通过切换不同的product从而使用到对应的productMessage值。

收起

自动换行

深色代码主题

复制

```
1. {
2. "app": {
3. "products": [
4. {
5. "name": "default",
6. "signingConfig": "default",
7. "compatibleSdkVersion": "6.0.2(22)",
8. "runtimeOS": "HarmonyOS",
9. "buildOption": {
10. "arkOptions": {
11. // 工程级自定义参数
12. "buildProfileFields": {
13. "productMessage": 'defaultMessage'
14. }
15. }
16. }
17. },
18. {
19. "name": "mirror",
20. "signingConfig": "default",
21. "compatibleSdkVersion": "6.0.2(22)",
22. "runtimeOS": "HarmonyOS",
23. "buildOption": {
24. "arkOptions": {
25. // 工程级自定义参数
26. "buildProfileFields": {
27. "productMessage": 'mirrorMessage'
28. }
29. }
30. }
31. },
32. {
33. "name": "product",
34. "signingConfig": "default",
35. "compatibleSdkVersion": "6.0.2(22)",
36. "runtimeOS": "HarmonyOS",
37. "buildOption": {
38. "arkOptions": {
39. // 工程级自定义参数
40. "buildProfileFields": {
41. "productMessage": 'productMessage'
42. }
43. }
44. }
45. }
46. ],
47. "buildModeSet": [
48. {
49. "name": "debug",
50. },
51. {
52. "name": "release"
53. }
54. ]
55. },
56. "modules": [
57. {
58. "name": "entry",
59. "srcPath": "./entry",
60. "targets": [
61. {
62. "name": "default",
63. "applyToProducts": [
64. // 关联到多个product
65. "default",
66. "product",
67. "mirror"
68. ]
69. }
70. ]
71. },
72. {
73. "name": "har",
74. "srcPath": "./har"
75. }
76. ]
77. }
```

在har模块的build-profile.json5使用以下配置。

收起

自动换行

深色代码主题

复制

```
1. {
2. "apiType": "stageMode",
3. "buildOption": {
4. "arkOptions": {
5. // har模块的自定义参数
6. "buildProfileFields": {
7. "targetMessage1": 'this is target buildProfileValue1',
8. "targetMessage2": 'this is target buildProfileValue2'
9. }
10. }
11. },
12. "buildOptionSet": [
13. {
14. "name": "release",
15. "arkOptions": {
16. "obfuscation": {
17. "ruleOptions": {
18. "enable": true,
19. "files": [
20. "./obfuscation-rules.txt"
21. ]
22. },
23. "consumerFiles": [
24. "./consumer-rules.txt"
25. ]
26. }
27. },
28. },
29. ],
30. "targets": [
31. {
32. "name": "default"
33. }
34. ]
35. }
```

在har模块的MainPage.ets中添加以下代码。

收起

自动换行

深色代码主题

复制

```
1. import BuildProfile from "../../../../BuildProfile"

3. @Preview
4. @Component
5. export struct MainPage {
6. // 默认赋值为工程级别BuildProfile自定义参数配置的productMessage
7. @State message: string = BuildProfile.productMessage
8. build() {
9. Row() {
10. Column() {
11. Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceAround }) {
12. Button("Button 1").width("40%")
13. .onClick(() => {
14. // 点击展示自定义字段targetMessage1
15. this.message = BuildProfile.targetMessage1;
16. })
17. Button("Button 2").width("40%")
18. .onClick(() => {
19. // 点击展示自定义字段targetMessage2
20. this.message = BuildProfile.targetMessage2;
21. })
22. }.margin(20)
23. .width(315)
24. Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
25. Text(this.message)
26. .textAlign(TextAlign.Start)
27. .fontSize(12)
28. .border({ width: 1 })
29. .padding(10)
30. .width('100%')
31. }.height(600).width(350).padding({ left: 35, right: 35})
32. }
33. }
34. }
35. }
```

在hap的oh-package.json5中引用本地的har模块。

收起

自动换行

深色代码主题

复制

```
1. {
2. "name": "entry",
3. "version": "1.0.0",
4. "description": "Please describe the basic information.",
5. "main": "",
6. "author": "",
7. "license": "",
8. "dependencies": {
9. "har": "file:../har"
10. }
11. }
```

在hap的Index.ets文件中引用该har包并且使用MainPage方法。

收起

自动换行

深色代码主题

复制

```
1. import { MainPage } from "har"

3. @Entry
4. @Component
5. struct Index {
6. build() {
7. Row() {
8. MainPage()
9. }
10. }
11. }
```

## 执行预览或签名后推包到设备调试

点击har模块执行以下按钮。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a3/v3/DKnCtr6mThe-3CaSP7_dYA/zh-cn_image_0000002501070298.png?HW-CC-KV=V1&HW-CC-Date=20260414T054938Z&HW-CC-Expire=86400&HW-CC-Sign=F5F3C87213F86CE75DB6275FCF11558127AA8463CF7F40FC4360076520617F27)

default模式下初始化的message为defaultMessage。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/78/v3/D10lxCWlQgSNryZcvdhWfw/zh-cn_image_0000002532670371.png?HW-CC-KV=V1&HW-CC-Date=20260414T054938Z&HW-CC-Expire=86400&HW-CC-Sign=4259BE3AB08A7807B07F44FC268FF0F9594683D986F12831B7C570A2CA15F863)

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ef/v3/LVKnPh19QkSjpsHOBNxIMw/zh-cn_image_0000002500910448.png?HW-CC-KV=V1&HW-CC-Date=20260414T054938Z&HW-CC-Expire=86400&HW-CC-Sign=5AD99104F57564BE4554B9E5FB58FA65E186AC476E7FD6C47C3781CB1A5A17F3)

通过切换不同的product可以使用不同的自定义参数用来初始化message。

切换product为mirror。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/3d/v3/xWxda9bLSuCbwPt6INQKRg/zh-cn_image_0000002500910446.png?HW-CC-KV=V1&HW-CC-Date=20260414T054938Z&HW-CC-Expire=86400&HW-CC-Sign=2CE72065D1F8E8890A1FF83237A108ED0A7010D3883018B36817457BA4226A48)

可以观察到初始化参数为mirrorMessage：

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7e/v3/twAHKlhRQTCgsFcRgIy2Rw/zh-cn_image_0000002501070294.png?HW-CC-KV=V1&HW-CC-Date=20260414T054938Z&HW-CC-Expire=86400&HW-CC-Sign=191DD03E1B054084745379D8B07D4858D488BEBEB6589D39717F4231A298EF24)

点击不同的Button可以改变message为对应的自定义参数：

**图1** 点击Button1  
![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/e0/v3/DIqENcA4QQSHHGB3qjtWCA/zh-cn_image_0000002532750321.png?HW-CC-KV=V1&HW-CC-Date=20260414T054938Z&HW-CC-Expire=86400&HW-CC-Sign=1A9AB8DD99F6D73A5757E58C821C9341ADC11DD077FD748F43ED51A3F625A141)

**图2** 点击Button2  
![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d4/v3/TyAdNPBGQgyGbVBkMrK63g/zh-cn_image_0000002532750317.png?HW-CC-KV=V1&HW-CC-Date=20260414T054938Z&HW-CC-Expire=86400&HW-CC-Sign=B86BBFFEBD90942491CFD4EC83777D1AC85EF233C644770A7D6857F2D1F213BD)