feat: add module discovery and build output path documentation
This commit is contained in:
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||||
|
|
||||||
|
## [1.0.1] - 2026-02-11
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- **harmonyos-build-deploy**: Finding Modules section (module definitions in build-profile.json5, module type identification)
|
||||||
|
- **harmonyos-build-deploy**: Finding Module Build Outputs section (output paths, signed/unsigned artifacts, search commands)
|
||||||
|
|
||||||
## [1.0.0] - 2026-02-10
|
## [1.0.0] - 2026-02-10
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -248,6 +248,114 @@ outputs/
|
|||||||
| HAR | `.har` | Harmony Archive - Static library (compiled into HAP) |
|
| HAR | `.har` | Harmony Archive - Static library (compiled into HAP) |
|
||||||
| APP | `.app` | Complete application bundle (all HAP + HSP) |
|
| APP | `.app` | Complete application bundle (all HAP + HSP) |
|
||||||
|
|
||||||
|
## Finding Modules
|
||||||
|
|
||||||
|
All modules are defined in `build-profile.json5` at the project root, in the `modules` array.
|
||||||
|
|
||||||
|
### Module Definition Structure
|
||||||
|
|
||||||
|
```json5
|
||||||
|
{
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "entry", // Module name (used in build commands)
|
||||||
|
"srcPath": "./entry", // Module source path (relative to project root)
|
||||||
|
"targets": [ // Build target config (optional)
|
||||||
|
{
|
||||||
|
"name": "default",
|
||||||
|
"applyToProducts": ["default", "app_store"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "support_http",
|
||||||
|
"srcPath": "./support/support_http",
|
||||||
|
"targets": [...]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Key Fields
|
||||||
|
|
||||||
|
| Field | Description |
|
||||||
|
|-------|-------------|
|
||||||
|
| `name` | Module name, used in build commands (e.g., `-p module=entry@default`) |
|
||||||
|
| `srcPath` | Module source path relative to project root |
|
||||||
|
| `targets` | Build target config, specifies which products this module applies to |
|
||||||
|
|
||||||
|
### Module Type Identification
|
||||||
|
|
||||||
|
| Characteristic | Module Type |
|
||||||
|
|----------------|-------------|
|
||||||
|
| Has `targets` and `name` is `entry` | **HAP** (Application entry) |
|
||||||
|
| Has `targets` config | **HSP** (Dynamic shared package) |
|
||||||
|
| No `targets` config | **HAR** (Static library, compiled into other modules) |
|
||||||
|
|
||||||
|
### Quick Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Read build-profile.json5 to find all modules
|
||||||
|
cat build-profile.json5
|
||||||
|
|
||||||
|
# Extract module names and paths (grep)
|
||||||
|
grep -E '"name"|"srcPath"' build-profile.json5
|
||||||
|
```
|
||||||
|
|
||||||
|
## Finding Module Build Outputs
|
||||||
|
|
||||||
|
Module build outputs are located at:
|
||||||
|
|
||||||
|
```
|
||||||
|
{srcPath}/build/default/outputs/default/
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note:** Debug and Release builds output to the same directory. The difference is in the signing configuration used (defined in `build-profile.json5` → `signingConfigs`).
|
||||||
|
|
||||||
|
### Output Files
|
||||||
|
|
||||||
|
| File | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `{name}-default-signed.hsp` | **Signed HSP** (ready for installation) |
|
||||||
|
| `{name}-default-unsigned.hsp` | Unsigned HSP |
|
||||||
|
| `{name}.har` | HAR static library |
|
||||||
|
| `app/{name}-default.hsp` | Intermediate artifact |
|
||||||
|
| `mapping/sourceMaps.map` | Source maps for debugging |
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
For module `support_http` with `srcPath: "./support/support_http"`:
|
||||||
|
|
||||||
|
```
|
||||||
|
support/support_http/build/default/outputs/default/
|
||||||
|
├── support_http-default-signed.hsp ← Signed, ready to install
|
||||||
|
├── support_http-default-unsigned.hsp
|
||||||
|
├── support_http.har
|
||||||
|
├── app/
|
||||||
|
│ └── support_http-default.hsp
|
||||||
|
├── mapping/
|
||||||
|
│ └── sourceMaps.map
|
||||||
|
└── pack.info
|
||||||
|
```
|
||||||
|
|
||||||
|
### Search Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Find all signed HSP/HAP outputs
|
||||||
|
dir /s /b "*-signed.hsp" "*-signed.hap" 2>nul # Windows
|
||||||
|
find . -name "*-signed.hsp" -o -name "*-signed.hap" # Linux/macOS
|
||||||
|
|
||||||
|
# Find specific module's output
|
||||||
|
dir /s /b "{srcPath}\build\default\outputs\default\*" # Windows
|
||||||
|
ls -la {srcPath}/build/default/outputs/default/ # Linux/macOS
|
||||||
|
```
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
1. **Build required**: If `build/` directory doesn't exist, run build first
|
||||||
|
2. **Project-level outputs**: Complete app bundle is in project root `outputs/` after `assembleApp`
|
||||||
|
3. **oh_modules outputs**: Dependency modules may have outputs in `oh_modules/@xxx/build/...` (these are resolved dependencies)
|
||||||
|
|
||||||
## Unwanted Modules in Output Directory
|
## Unwanted Modules in Output Directory
|
||||||
|
|
||||||
Sometimes HSP files appear in the output directory that are **not listed in `build-profile.json5`**. These modules should not be deployed.
|
Sometimes HSP files appear in the output directory that are **not listed in `build-profile.json5`**. These modules should not be deployed.
|
||||||
|
|||||||
Reference in New Issue
Block a user