This content originally appeared on DEV Community and was authored by HarmonyOS
Read the original article:Integrating Modules from Other Projects into a Project
Problem Description
There are two sibling projects A and B. The goal is to package and use a module from Project B inside Project A.
Background Knowledge
- The project-level build-profile.json5 lists project modules: each item specifies the module name, its srcPath, and its build targets.
 - 
Dependencies are declared in oh-package.json5 under dependencies (runtime) or devDependencies (development). You can reference:
- Remote third‑party packages,
 - Local folders,
 - Local HAR/HSP artifacts.
 
 HSP (Shared Package) is the recommended library type for sharing ArkTS/ETS code and resources across modules/apps.
Troubleshooting Process
- Confirm directory layout
 
/parent
  ├─ A/
  └─ B/
2.Check library type in Project B
- Ensure B contains an HSP module (e.g., library) that builds successfully on its own.
 
3.Verify module registration in A
- In A’s build-profile.json5, confirm B’s module is listed with the correct relative srcPath and a target that applies to A’s product:
 
{
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [{ "name": "default", "applyToProducts": ["default"] }]
    },
    {
      "name": "library",                // must match module name in B
      "srcPath": "../B/library",        // relative to A
      "targets": [{ "name": "default", "applyToProducts": ["default"] }]
    }
  ]
}
4.Verify dependency wiring in A
- In A/entry oh-package.json5, add the local dependency pointing to B’s module folder:
 
{
  "name": "entry",
  "version": "1.0.0",
  "dependencies": {
    "library": "file:../../B/library"   // key should align with library package name
  }
}
5.Re-sync & build
- Sync in DevEco Studio → Clean/Rebuild A.
 
6.If issues persist, check common pitfalls
- Wrong srcPath or file: path (relative paths from A).
 - Module/package name mismatch between modules[].name and dependency key.
 - Missing targets.applyToProducts mapping the active product (e.g., "default").
 - Incompatible compatibleSdkVersion / runtimeOS between A and B.
 - Using HAR when HSP is expected (or vice versa).
 
Analysis Conclusion
Failures typically stem from path or naming mismatches, unregistered module targets, or incompatible SDK/product settings.
Correctly registering B’s HSP module in A’s build-profile.json5 and wiring a matching local file: dependency in oh-package.json5 resolves the packaging/linking errors.
Solution
- Keep A and B as siblings.
 - In B, create/confirm an HSP module (e.g., library).
 - 
In A:
- Add B/library to build-profile.json5 → "modules" with a correct relative srcPath and targets.
 - Add a local dependency in A/entry oh-package.json5:
 
 
"dependencies": { "library": "file:../../B/library" }
- Re-sync and build A.
 
Verification Result
- Build of A succeeds in debug and release.
 - Code from B/library is importable/usable in A/entry.
 - Final HAP produced by A contains the library content (expected classes/resources available at runtime)
 
Related Documents or Links
https://developer.huawei.com/consumer/en/doc/harmonyos-guides/ide-hvigor-configuration
Written by Bilal Basboz
This content originally appeared on DEV Community and was authored by HarmonyOS
HarmonyOS | Sciencx (2025-10-29T02:07:31+00:00) Integrating Modules from Other Projects into a Project. Retrieved from https://www.scien.cx/2025/10/29/integrating-modules-from-other-projects-into-a-project/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.