我目前正在使用Dep,并希望开始使用Go模块.

我如何迁移?

推荐答案

从Dep to Go模块迁移非常容易.

  1. 运行go version并确保您使用的是GO版本1.11或更高版本.
  2. 将代码移出GOPATH或设置为export GO111MODULE=on.
  3. go mod init [module path]:这将从Gopkg.lock导入依赖项.
  4. go mod tidy:这将删除不必要的导入,并添加间接导入.
  5. (可选)删除您的供应商文件夹(rm -rf vendor/或移至垃圾桶)
  6. go build:做一个测试构建,看看它是否有效.
  7. rm -f Gopkg.lock Gopkg.toml:删除Dep使用的过时文件.

Go通过读取Gopkg.lock文件从Dep导入了依赖项,并创建了go.mod文件.

如果要保留供应商文件夹,请执行以下操作:

  1. 运行go mod vendor将依赖项复制到供应商文件夹中.
  2. 运行go build -mod=vendor以确保go build使用您的供应商文件夹.

Go相关问答推荐

在字符串与字符串子切片上使用len进行位转移产生意外输出

Go Net/http路由

Gorm foreign 密钥

Go中的net.SplitHostPort(r.RemoteAddr)安全性

如何使用Gio设置标题栏图标

Go 中将 int 切片转换为自定义 int 切片指针类型的函数

通过多阶段构建复制到 Docker 容器中时找不到文件

将 firestoreinteger_value转换为整数

如何将 base64 编码的公钥转换为 crypto.PublicKey 或 ecdsa.PublicKey

整理时转换值

Go http.FileServer 给出意外的 404 错误

为什么 `append(x[:0:0], x...)` 将切片复制到 Go 中的新后备数组中?

在 Golang 模板中计算时间/持续时间

go 是否对 struct 使用空间填充之类的东西?

使用 oklog/run 来自 Go 编译器的错误(无值)用作值

使用 delve 在容器中调试 Golang:container_linux.go:380:启动容器进程导致:exec:/dlv:stat /dlv:没有这样的文件或目录

为什么 go-cmp Equal() 说 struct 不是完全相等的,即使所有字段都非常相等?

如何在 Gorm 中获得特定日期的最大值?

Beego - 我需要context.Context而不是 Beego 上下文

Go 语言的select语句