Gradle构建Go项目依赖解析失败,如何跳过Bitbucket API调用使用本地库
报错根因说明
你使用的GoGradle插件解析Bitbucket托管的依赖时,会优先调用Bitbucket公开API查询仓库元数据,你遇到的404错误是https://api.bitbucket.org/2.0/repositories/pkg/inflect接口已无法访问导致的。
原生go get不会调用Bitbucket API,直接通过git协议拉取仓库,只要仓库git地址可访问就能正常拉取,所以不会触发报错。
配置本地依赖跳过远程拉取的方法
在项目根目录的build.gradle文件中添加如下配置,将对应依赖替换为你本地fork的目录即可:
golang { dependencies { build { // 替换为你本地inflect依赖的实际存放路径 'bitbucket.org/pkg/inflect' dir('/your/local/path/to/inflect') // 如果github.com/hashicorp/vic也需要使用本地版本,添加下面这行,替换为实际路径 'github.com/hashicorp/vic' dir('/your/local/path/to/vic') } } }
如果需要全局生效,也可以通过仓库重定向规则配置:
golang { repositories { go('bitbucket.org/pkg/inflect') { dir '/your/local/path/to/inflect' } } }
配置完成后重新执行构建,GoGradle会直接读取本地目录的依赖,不会再发起Bitbucket API请求,也不会尝试拉取远程的vic依赖。
内容的提问来源于stack exchange,提问作者Utkarsh Saraf
相关产品推荐
相关产品推荐

