rayhy
V2EX  ›  问与答

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

  •  
  •   rayhy · Dec 12, 2021 · 876 views
    This topic created in 1638 days ago, the information mentioned may be changed or developed.

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

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2798 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 12:15 · PVG 20:15 · LAX 05:15 · JFK 08:15
    ♥ Do have faith in what you're doing.