我正在尝试使用 golang 中的 pulsar,并且尝试将我的项目从 dep 迁移到 go 模块,因为一些较新的库更喜欢 go 模块。
当我尝试创建一个新项目并运行
dep ensure -add github.com/apache/pulsar/pulsar-client-go/[email protected]
它运行完美我得到了 2.4.1 标签,它加载了正确的 cgo 库,一切都很棒。
但是在 go 模块中当我尝试这样做时
go.mod 文件:
module sample
go 1.13
require ( github.com/apache/pulsar/pulsar-client-go/pulsar v2.4.1 )
它失败了
需要 github.com/apache/pulsar/pulsar-client-go/pulsar:版本“v2.4.1”无效:未知修订 pulsar-client-go/pulsar/v2.4.1
答案1
dep
用途导入路径. 模块使用模块路径,略有不同。要找到模块路径,您需要跟踪文件go.mod
和查看模块名称。
您尝试使用的模块是github.com/apache/pulsar/pulsar-client-go
,不带/pulsar
后缀。 处没有go.mod
文件.../pulsar-client-go/pulsar/
。
一旦文件中有了正确的模块路径go.mod
,您就可以在代码中使用导入路径。
package foo
import "github.com/apache/pulsar/pulsar-client-go/pulsar"
func Foo() {
pulsar.Foo()
}