执行dart pub add添加Git SSH依赖报错,是否必须改用HTTPS?
Dart Pub使用SSH协议添加依赖的正确方式
可以用SSH协议添加依赖,你遇到的问题是命令格式不正确,并非SSH协议本身不支持。
错误原因
你使用的git@git.test.com:tong/my_package.git是Git的scp风格地址,但--git-url参数要求传入标准URL格式,这种scp写法不符合URL规范,因此会触发"非法协议字符"的错误提示。
两种正确的命令写法
方式一:转成标准SSH URL格式
将scp风格地址改为带ssh://前缀的URL,同时把地址中的冒号替换为斜杠:
pub add my_package --git-url=ssh://git@git.test.com/tong/my_package.git --git-ref=0.0.1
方式二:直接使用scp风格地址(无需--git-url参数)
省略--git-url参数,直接在依赖名后拼接scp地址和版本标签(用#分隔版本号):
pub add my_package:git@git.test.com:tong/my_package.git#0.0.1
额外检查点
如果执行正确命令后仍失败,先确认本地SSH密钥已配置完成,能正常访问该私有仓库——可以先测试git clone git@git.test.com:tong/my_package.git能否成功,因为Pub拉取Git依赖本质是调用本地Git命令,Git能正常操作的话Pub就能正常拉取。
内容的提问来源于stack exchange,提问作者Tong Fang
相关产品推荐
相关产品推荐

