HarmonyOS鸿蒙Next中怎么给构建的产物hap重命名,名字里面带着构建类型、构建时间等信息

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS鸿蒙Next中怎么给构建的产物hap重命名,名字里面带着构建类型、构建时间等信息 怎么给构建的产物hap重命名,名字里面带着构建类型、构建时间等信息

3 回复

在hvigorfile.ts里:使用下述代码可以实现构建的产物hap重命名

import { hapTasks, OhosHapContext, OhosPluginId } from '@ohos/hvigor-ohos-plugin'
import { getNode } from '@ohos/hvigor'
import { hvigor } from '@ohos/hvigor'

const entryNode = getNode(__filename)
const appContext = hvigor.getRootNode().getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext
const appJsonOpt = appContext.getAppJsonOpt()
const versionName = appJsonOpt['app']['versionName']
entryNode.afterNodeEvaluate(node => {
  const hapContext = node.getContext(OhosPluginId.OHOS_HAP_PLUGIN) as OhosHapContext
  if (hapContext && hapContext.getBuildProfileOpt) {
    const buildProfile = hapContext.getBuildProfileOpt()
    const product = buildProfile.targets[0]
    product["artifactName"] = "xxx-" + versionName + '_' + getTime() + '_' + appContext.getBuildMode(),
    hapContext.setBuildProfileOpt(buildProfile)
  }
})

function getTime(): string {
  let date = new Date()
  let year = date.getFullYear()
  let month = (date.getMonth() + 1).toString().padStart(2, '0')
  let day = date.getDate().toString().padStart(2, '0')
  let hours = date.getHours().toString().padStart(2, '0')
  let minutes = date.getMinutes().toString().padStart(2, '0')
  return `${year}-${month}-${day}_${hours}_${minutes}`
}

export default {
  system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */
  plugins: [] /* Custom plugin to extend the functionality of Hvigor. */
}

更多关于HarmonyOS鸿蒙Next中怎么给构建的产物hap重命名,名字里面带着构建类型、构建时间等信息的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,可以通过修改build.gradle文件来自定义构建产物的名称,使其包含构建类型和构建时间等信息。具体步骤如下:

  1. 打开项目的build.gradle文件。
  2. androidharmony配置块中,找到applicationVariantshapVariants配置。
  3. 使用outputFileName属性来重命名生成的hap文件。可以通过variant.buildType.name获取构建类型,使用new Date().format('yyyyMMdd_HHmmss')获取当前时间。

示例代码如下:

android {
    ...
    applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "app_${variant.buildType.name}_${new Date().format('yyyyMMdd_HHmmss')}.hap"
        }
    }
}

或者对于HarmonyOS:

harmony {
    ...
    hapVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "app_${variant.buildType.name}_${new Date().format('yyyyMMdd_HHmmss')}.hap"
        }
    }
}

通过这种方式,生成的hap文件名称将包含构建类型和构建时间信息,例如app_debug_20231025_143000.hap

在HarmonyOS鸿蒙Next中,可以通过修改build.gradle文件中的outputFileName属性来实现hap产物的重命名。示例代码如下:

android {
    ...
    applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "MyApp_${variant.buildType.name}_${new Date().format('yyyyMMdd_HHmm')}.hap"
        }
    }
}

这段代码会将生成的hap文件命名为MyApp_<构建类型>_<构建时间>.hap,例如MyApp_debug_20231012_1430.hap

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!