gomod使用记录

简单记录 go mod 的使用方式:

  1. 代理配置
    $env:GOPROXY = "https://goproxy.io" 或使用 goproxy.cn

  2. 初始化
    go mod init ***,***为你要创建的mod名字,直接为工程名即可

  3. 自动下载依赖
    go run *****.go,在执行前会首先查找并下载安装依赖

  4. 更新旧的 package import 方式,内部依赖也需要增加 mod 名

    package main
    import (
        api "mymod/api"  // mymod 是初始化的 mod 名 
        "github.com/labstack/echo"
    )
    
    func main() {
        e := echo.New()
        e.GET("/", api.MyAPI)
        e.Logger.Fatal(e.Start(":1234"))
    }
    
  5. 使用 replace 替换无法直接获取的 package

    replace (
        golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a => github.com/golang/crypto v0.0.0-20190313024323-a1f597ede03a
    )
    
  6. 检查并升级 package
    go list -m -u all
    go get -u need-upgrade-package 或者 go get -u

常用的命令如下:

命令 功能
download 下载依赖包
edit 编辑 go.mod
graph 打印模块依赖图
init 初始化 mod
tidy 拉取缺少的模块,移除不用的模块
vendor 将依赖复制到 vendor 下
verify 验证依赖是否正确
why 解释为什么需要依赖