创建HarmonyOS库文件和使用Maven仓库
HarmonyOS库(HarmonyOS Ability Resources,简称HAR)可以提供应用构建所需的一切内容,包括源代码、资源文件、HarmonyOS配置文件以及第三方库。HAR不同于HAP,HAR不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。
创建库模块
在DevEco Studio中,可以通过如下方式创建新的库模块。
1. 通过如下两种方法,在工程中添加新的HarmonyOS Library模块。
o 方法1:鼠标移到工程目录顶部,点击鼠标右键,选择New>Module。
o 方法2:在菜单栏选择File > New > Module。
2. 在New Module界面中,Device选择Phone或Tablet或Car或TV或Wearable设备,Template选择HarmonyOS Library,并点击Next。
3.
4. 在Configure the New Module界面中,设置新添加的模块信息,设置完成后,点击Finish完成创建。
o Application/Library name:新增Module所属的类名称。
o Module name:新增模块的名称。
o Package name:软件包名称,可以点击Edit修改默认包名称,需全局唯一。
o Compatible SDK:兼容的SDK版本。
5. 等待Gradle同步完成后,会在工程目录中生成对应的库模块。
将库模块编译为HAR
利用Gradle可以将HarmonyOS Library库模块构建为HAR包,以便在工程中引用HAR或者将HAR包提供给其它开发者进行调用。构建HAR包的方法如下:
在Gradle构建任务中,双击PackageDebugHar或PackageReleaseHar任务,构建Debug类型或Release类型的HAR。
待构建任务完成后,可以在工程目录中的moduleName > bulid > outputs > har目录中,获取生成的HAR包。
发布Har包到Maven仓
借助Gradle提供的Maven-publish插件,可以将Har包发布到本地或远程Maven仓。
1. 在工程根目录下,点击鼠标右键New > File,创建一个以“.gradle”结尾的文件,如u。
2. 在创建的u文件中,添加如下示例代码。如下示例代码为发布HAR包到Maven仓的最小集,请根据实际发布信息进行修改。
3.
1. apply plugin: 'maven-publish'
2.
3. def DEFAULT_POM_NAME='myLibrary'
4. def DEFAULT_POM_VERSION='1.0.1' //har包版本信息
5. def DEFAULT_POM_ARTIFACT_ID="harTest" //har包ID
6. def DEFAULT_POM_GROUP_ID='com.; //项目组ID
7. def DEFAULT_POM_PACKAGING='har' //包类型,固定为har
8. def DEFAULT_POM_DESCRIPTION='myLib for harmonyos'
9. def MAVEN_USERNAME='admin' //远程Maven仓的用户名
10. def MAVEN_PASSWORD='******' //远程Maven仓的密码
11. def LOCAL_MAVEN_REPOSITORY_URL='D:/01.localMaven/' //本地Maven仓地址
12. def REMOTE_MAVEN_REPOSITORY_URL='http:// ' //远程Maven仓地址
13.
14. afterEvaluate { project ->
15. DEFAULT_POM_ARTIFACT_ID =
16. publishing {
17. publications {
18. maven(MavenPublication) {
19. from com //指定发布的har包类型为debug或release
20. group = DEFAULT_POM_GROUP_ID
21. artifactId = DEFAULT_POM_ARTIFACT_ID
22. version = DEFAULT_POM_VERSION
23. pom {
24. name = DEFAULT_POM_NAME
25. description = DEFAULT_POM_DESCRIPTION
26. packaging = DEFAULT_POM_PACKAGING
27. }
28. }
29. }
30. repositories {
31. maven {
32. url = LOCAL_MAVEN_REPOSITORY_URL //发布到本地Maven仓
33. //发布到远程Maven仓的地址以及Maven仓的帐号和密码
34. /*url = REMOTE_MAVEN_REPOSITORY_URL
35. credentials {
36. username MAVEN_USERNAME
37. password MAVEN_PASSWORD
38. }*/
39. }
40. }
41. }
42. }
43.
4. 在Har模块的build.gradle中,添加HAR发布脚本。添加完成后,请点击Sync Now进行同步。
5.
1. apply from:'../u'
6. 同步完成后,会在Gradle任务中增加publishing的任务列表。
7.
8. 双击执行publishMavenPublicationToMavenRepository任务,将HAR包发布到指定的Maven地址。
9.
10. 本示例是以发布到本地Maven地址为例,发布结果如下图所示。
11.
为应用模块添加依赖
在应用模块中调用HAR,常用的添加依赖的方式包括如下两种。
1. 调用同一个工程中的HAR:HAR包和应用模块在同一个工程,打开应用模块的build.gradle文件,在dependencies闭包中,添加如下代码。添加完成后,请点击Sync Now同步工程。
2.
1. dependencies {
2. implementation project(":mylibrary")
3. }
3. 调用Maven仓中的HAR:无论Har包是本地Maven仓还是远程Maven仓,均可以采用如下方式添加依赖。
1. 在工程的build.gradle的allprojects闭包中,添加HAR所在的Maven仓地址。
2.
1. repositories {
2. maven {
3. url 'file://D:/01.localMaven/' //添加Maven仓地址,可以是本地Maven地址,也可以是远程Maven地址
4. }
5. }
3. 在应用模块的build.gradle的中,dependencies闭包中,添加如下代码。
4.
1. dependencies {
2. implementation 'com.;
3. }
5. 添加完成后,请点击Sync Now同步工程。