gpt4 book ai didi

go - 如何使用带有版本化 Go 模块的 fork 模块(v1.11+,GO111MODULE=on)

转载 作者:IT王子 更新时间:2023-10-29 01:46:35 25 4
gpt4 key购买 nike

forked一个 go 模块,想在我的项目中使用 fork versioned modules通过 v1.12。我的代码不在我的 GOPATH 中。

我项目的go.mod:

module github.com/me/myproj

go 1.12

require (
go.larrymyers.com/protoc-gen-twirp_typescript v0.0.0-20190605194555-ffbfe407b60f
)

replace go.larrymyers.com/protoc-gen-twirp_typescript => github.com/rynop/protoc-gen-twirp_typescript master

protoc-gen-twirp_typescript 是protoc 的工具,所以这是我的tools.go:

// +build tools

package tools

import (
// protocol buffer compiler plugins
_ "github.com/golang/protobuf/protoc-gen-go"
_ "github.com/mwitkow/go-proto-validators/protoc-gen-govalidators"
_ "github.com/twitchtv/twirp/protoc-gen-twirp"
_ "github.com/rynop/protoc-gen-twirp_typescript"
)

当我运行 go mod tidy 来下载我的依赖项时,我得到这个错误:

go: finding github.com/rynop/protoc-gen-twirp_typescript master
go: finding github.com/rynop/protoc-gen-twirp_typescript latest
go: github.com/rynop/protoc-gen-twirp_typescript@v0.0.0-20190618203538-a346b5d9c8fb: parsing go.mod: unexpected module path "go.larrymyers.com/protoc-gen-twirp_typescript"

为什么会出现此错误?我以为 replace go.mod 中的指令允许 forked modules go.mod保持不变。

最佳答案

您有以下replace:

替换 go.larrymyers.com/protoc-gen-twirp_typescript => github.com/rynop/protoc-gen-twirp_typescript master

如果我遵循了,它实际上是 replace originalname => forkname

我认为问题在于您使用 fork 的名称而不是原始名称进行导入:

import (
// protocol buffer compiler plugins
_ "github.com/golang/protobuf/protoc-gen-go"
_ "github.com/mwitkow/go-proto-validators/protoc-gen-govalidators"
_ "github.com/twitchtv/twirp/protoc-gen-twirp"
_ "github.com/rynop/protoc-gen-twirp_typescript" <<<< PROBLEM, using fork name
)

您看到的错误消息似乎是 go 命令对此的提示。

我怀疑如果您在导入语句中使用原始名称,它会起作用:

import (
...
_ "go.larrymyers.com/protoc-gen-twirp_typescript" <<<< original name
)

您还应该运行 go list -m all 来查看最终选择的版本,包括它显示任何 replaceexclude 的结果指令。

关于go - 如何使用带有版本化 Go 模块的 fork 模块(v1.11+,GO111MODULE=on),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56671133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com