我试图通过go mod下载一个项目的所有依赖项;在CLI上执行go mod vendor
时出现问题。输出如下:
go: finding github.com/hyperledger/fabric-sdk-go v0.0.0-00010101000000-000000000000
go: github.com/hyperledger/fabric-sdk-go@v0.0.0-00010101000000-000000000000: unknown revision 000000000000
go: error loading module requirements
导入库的代码如下:
import (
"github.com/hyperledger/fabric-sdk-go/pkg/client/ledger"
"github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt"
"github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
)
krakengosdk是我正在处理的包的名称:
go mod init krakengosdk
有解决办法吗?我一直在寻找任何解决办法有一段时间了,但我还没有遇到任何有用的。
编辑:我已经更新了go版本到1.13;看起来错误应该是“github.com/hyperledger/fabric-sdk-go/test/integration@v0.0.0-20190918153951-5d7ae7a5be8f“:
go get -v github.com/hyperledger/fabric-sdk-go/test/integration@latest
go: finding github.com/hyperledger/fabric-sdk-go/test/integration latest
go get: github.com/hyperledger/fabric-sdk-go/test/integration@v0.0.0-20190918153951-5d7ae7a5be8f requires
github.com/hyperledger/fabric-sdk-go@v0.0.0-00010101000000-000000000000: invalid version: unknown revision 000000000000
5条答案
按热度按时间umuewwlo1#
问题:
1.什么是你的确切go.mod文件?
1.是否有针对
github.com/hyperledger/fabric-sdk-go
的replace
指令?1.如果你现在没有,你曾经有过吗?
如果您有一个
replace
指令,但没有相应的require
指令,则通常会显示该长版本v0.0.0-00010101000000-000000000000
,并且go
命令会自动为您添加一个使用该长版本的require
指令。这可能没问题,但我想知道您是否添加了
replace
,但后来删除了replace
,同时在require
中保留了长版本v0.0.0-00010101000000-000000000000
。如果您:
1.删除您可能拥有的
github.com/hyperledger/fabric-sdk-go
的任何replace
指令1.将
github.com/hyperledger/fabric-sdk-go
的require
更改为:1.运行
go list -m all
此外,如果还没有,你应该使用Go 1.13的最新版本,它修复了一些错误,但通常也有更好的错误消息。
2exbekwf2#
这发生在我身上是因为使用了替换标志并删除了替换标志。这可以通过使用下面的两个命令来纠正。
上述命令将删除依赖项
以上命令重新下载依赖项。
i7uq4tfw3#
建议诊断
我建议在控制台中尝试这些命令(bash/dash/fish/zsh):
main.go
示例:分析
如果您遇到问题:解释你在哪一行遇到了什么样的问题。
如果一切正常,启动干净:看看你的项目和cleanstart有什么不同(go.sum和go.mod的不同)
祝你好运!
i2loujxw4#
错误-尝试为导入它的特定模块提取的版本已过期或无效。
解决方案-例如,在我的情况下,我得到以下错误:
如你所见,我的模块“github.com/myk4040okothogodo/tutorial/books/server“导入了另一个模块“github.com/myk4040okothogodo/tutorial/gen/go/proto/books:“,这个导入抛出了上面的错误,所以我转到我的go.mod文件并做了以下更改:
检查上面的第12行,我把**“latest”**代替了版本号,即“v0.0.0...”。
我保存文件,然后运行“go mod tidy”
然后编译器将“latest”指定更改为最新版本,即在运行mod tidy命令后,它将如下所示。
PS:检查我做修改的包,不要改错进口
2skhul335#
我不确定这个解决方案是否适用于每个人,但我刚刚做了
go get PACKAGE_WITH_ISSUE
,所以在您的情况下: