V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rayhy
V2EX  ›  问与答

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

  •  
  •   rayhy · 2021-12-12 15:58:53 +08:00 · 538 次点击
    这是一个创建于 932 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是 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来安装修改后的工具呢?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2816 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:11 · PVG 21:11 · LAX 06:11 · JFK 09:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.