如何使用分叉模块和版本化 Go 模块(v1.11+,GO111MODULE=on)

我分叉了一个 go 模块,并想在我的项目中使用该分叉,该项目通过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"

为什么我会收到此错误?

我认为替换指令go.mod允许分叉模块 go.mod保持不变。

慕村9548890
浏览 102回答 2
2回答

牧羊人nacy

您有以下内容replace:replace go.larrymyers.com/protoc-gen-twirp_typescript => github.com/rynop/protoc-gen-twirp_typescript master如果我遵循的话,就是有效的replace originalname => forkname我认为问题在于您正在使用分叉的名称而不是原始名称进行导入:import (&nbsp; &nbsp; // protocol buffer compiler plugins&nbsp; &nbsp; _ "github.com/golang/protobuf/protoc-gen-go"&nbsp; &nbsp; _ "github.com/mwitkow/go-proto-validators/protoc-gen-govalidators"&nbsp; &nbsp; _ "github.com/twitchtv/twirp/protoc-gen-twirp"&nbsp; &nbsp; _ "github.com/rynop/protoc-gen-twirp_typescript"&nbsp; &nbsp;<<<< PROBLEM, using fork name)您看到的错误消息似乎是go抱怨该问题的命令。我怀疑如果您在导入语句中使用原始名称,它会起作用:import (&nbsp; &nbsp; ...&nbsp; &nbsp; _ "go.larrymyers.com/protoc-gen-twirp_typescript"&nbsp; &nbsp;<<<< original name)您还应该运行以查看最终选定的版本,包括它显示任何和指令go list -m all的结果。replaceexclude

蝴蝶刀刀

如何使用分叉模块[?]你不能。Github 分支会生成一个不相关的包,很可能甚至无法构建。不要分叉,克隆。然后推送到另一个遥控器(可以是叉子)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go