使用 ABAP GIT 发生 IF_APACK_MANIFEST dump
错误重现
- 使用经典的 ABAP 系统
- 运行 ZABAPGIT 或者 ZABAPGIT_STANDALONE
- 然后添加在线或者离线项目
- 点击 Pull
- Short dump SYNTAX_ERROR
Dump 界面:
解决方案
它发生在 CREATE OBJECT lo_manifest_provider TYPE (ls_manifest_implementation-clsname)
语句中。
该语句 CREATE OBJECT lo_manifest_provider TYPE (ls_manifest_implementation-clsname)
要么在类 ZCL_ABAPGIT_APACK_HELPER
中,要么在类 ZCL_ABAPGIT_APACK_READER
中。原因是 manifest 类使用接口 IF_APACK_MANIFEST
但它不存在。
分析:在非 Cloud SAP 系统中,abapGit 不需要与 IF_APACK_MANIFEST
一起使用,但如果拉取的项目打算安装在 Cloud 系统中,则不会短 dump。
建议的解决方案:如果 manifest 类有语法错误,请不要分析它。
所以我的解决方案是在使用到这个语句的地方,注释掉:
参考链接:
- SYNTAX_ERROR 拉取 APACK 项目时,IF_APACK_MANIFEST 不存在 ·问题 #3308 ·abapGit/abapGit ·GitHub的 --- SYNTAX_ERROR while pulling APACK project, IF_APACK_MANIFEST doesn't exist · Issue #3308 · abapGit/abapGit · GitHub