HMS03.HarmonyOS库

01.概述

  HarmonyOS库(HarmonyOS Ability Resources,简称HAR)可以提供应用构建所需的一切内容,包括源代码、资源文件、HarmonyOS配置文件以及第三方库。

  HAR不同于HAP,HAR不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。

  Har包只能被Phone、Tablet、Car、TV和Wearable工程所引用。

02. HAR的创建  

  • 方法1:鼠标移到工程目录顶部,点击鼠标右键,选择New>Module。
  • 方法2:在菜单栏选择File > New > Module。

  在New Module界面中,选择HarmonyOS Library,并点击Next。(不是Ability);

  

 

 

 03.将库文件编译为HAR

   利用Gradle可以将HarmonyOS LIbrary军库模块构建为HAR包,以便在工程中引用HAR或将HAR包提供给其它开发者使用;

  

 

 

   执行上述Gradle指令后,将分别生成相应的HAR包

  

  

 04. 发布HAR包到MARVEN仓库

  借助Gradle提供的Maven-publish插件,可以将Har包发布到本地或远程Maven仓。

  1. 在工程根目录下,点击鼠标右键New > File,创建一个以“.gradle”结尾的文件,如upload.gradle。
  2. 在创建的upload.gradle文件中,添加如下示例代码。如下示例代码为发布HAR包到Maven仓的最小集,请根据实际发布信息进行修改。
     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.huawei.har'  //项目组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:\LocalMarven\'  //本地Maven仓地址
    12 def REMOTE_MAVEN_REPOSITORY_URL='https://xxxx/xxxx '  //远程Maven仓地址
    13 
    14 afterEvaluate { project ->
    15     DEFAULT_POM_ARTIFACT_ID = project.name
    16     publishing {
    17         publications {
    18             maven(MavenPublication) {
    19                 from components.debug  //指定发布的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 }

     

     

  3.   在Har模块的build.gradle中,添加HAR发布脚本。添加完成后,请点击Sync Now进行同步。

      

  4. 同步后,在Gradle中增加的任务表执行发布指令

     

    5. 在指定的本地仓库中,生成了相应的内容

     

 05. 为应用模块添加依赖  

  1. 调用同一个工程中的HAR:HAR包和应用模块在同一个工程,打开应用模块的build.gradle文件,在dependencies闭包中,添加如下代码。添加完成后,请点击Sync Now同步工程。
    1 dependencies {
    2     implementation project(":mylibrary")
    3 }
  2. 调用Maven仓中的HAR:无论Har包是本地Maven仓还是远程Maven仓,均可以采用如下方式添加依赖。
    1. 在工程的build.gradle的allprojects闭包中,添加HAR所在的Maven仓地址。 
      repositories {
              maven {
                  url 'file://D:/01.localMaven/'  //添加Maven仓地址,可以是本地Maven地址,也可以是远程Maven地址
              }
      }
    2. 在应用模块的build.gradle的dependencies闭包中,添加如下代码。 
      dependencies {
          implementation 'com.huawei.har:mylibrary:1.0.1'
      }  
    3. 添加完成后,请点击Sync Now同步工程。

      
  3. 调用本地HAR:将Har包放到模块下的libs目录,然后检查build.gradle中是否添加了*.har的依赖。     
dependencies {
    ...
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
}

 

 

 

 

 

posted @ 2021-10-11 22:16  耗喜天涯  阅读(233)  评论(0编辑  收藏  举报