如何在嵌套的 git 包上使用 go 模块?

如何在嵌套的 git 包上使用 go 模块?

我正在尝试使用 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()
}

相关内容