在 fork golang 写的命令行工具后,应当如何更改 go.mod 文件?

2021-12-12 15:58:53 +08:00
 rayhy

我是 golang 初学者,尝试更改别人写好的工具时,遇到一个比较初级的问题,希望大佬不吝赐教。

golang 中导入外部 libraries 需要用完整路径,比如 github.com/user1/gotool 的代码中可能有

import "github.com/user1/gotool/cmd/"

如果 fork 项目到github.com/user2/gotool ,项目的 import 路径还是原来项目代码的路径。 此时,如果 fork 后修改了cmd目录下的某个文件,应当怎么修改 go.mod 文件?

我搜索了一下"golang mod import fork"之类的关键词,出来的教程目前都是针对 fork 依赖库时的对应处理方法,比如 Using forked package import in Go,提供的解决方法都类似于go mod edit -replace="github.com/user1/gotool=github.com/user2/gotool"

但是,如果不是库,而是一个完整的工具,github.com/user1/gotool是 module 而不是 require 。比如go.mod文件只有下面这几行,没有第三方依赖。

module github.com/user1/gotool

go 1.17

如果只是暂时使用(比如提个 pr ),似乎不作任何修改就能直接运行。但是,如果原来的库作者不再维护了,自己要长期维护一个新的 fork 版本,这个时候应当怎么修改 go.mod 文件以引用自己的 fork 库,使别人可以方便地通过go install github.com/user2/gotool来安装修改后的工具呢?

538 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/821654

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX