问题现象
执行命令“ohpm unpublish ${name} -f”下架三方库失败,异常信息:
ERROR: HttpCode 400 The OHPM package has been depended on by other components
ERROR: Unpublish failed, detail: The "Unpublish" request to url "https://ohom.openharmony.cn/ohpm/XXX" has failed

背景知识
- ohpm unpublish:下架已发布的三方库。
- 命令格式:ohpm unpublish [options] [<@group>]<pkg>[@<version>]。
- 功能描述:
- 从OpenHarmony三方库中心仓下架已经发布并审核通过上架的三方库。
- 若不指定版本,则默认下架三方库的所有版本,并且需要加上-f配置参数;全部版本均下架后,在24h内则不允许重新发布相同名称的三方库。
- 若下架了某个版本,该版本号不允许再次使用,后续发布必须使用新的版本号。
- 若此三方库被其它三方库依赖,则不删除,而是打上deprecated的标签;若没有被依赖,则直接删除。
问题定位
- 由异常描述可知,下架失败的原因为被其他三方库依赖。
- 进入想要被下架的三方库的OpenHarmony三方库中心仓主页,在“被依赖”页签,可以看到有其他三方库依赖该三方库。
- 经确认,依赖该三方库的为历史版本,在最新的版本中已经解除对被依赖三方库的依赖关系。
- 删除有依赖关系的历史版本后,unpublish命令执行成功。
分析结论
unpublish命令执行失败原因在于还有依赖关系未删除。
修改建议
下架三方库,先根据“被依赖”页签递归删除被依赖项中的依赖关系,再执行对目标三方库的下架操作。
总结
unpublish命令不会直接下架目标三方库,避免因为依赖关系导致其他的库也不可用,若有依赖关系则无法被删除,会打上deprecated的标签。