如何从Dep迁移到Go模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Dep迁移到Go模块相关的知识,希望对你有一定的参考价值。
我目前正在使用Dep,并希望开始使用Go模块。
我如何迁移?
答案
从Dep迁移到Go模块非常简单。
- 运行
go version
并确保您使用的是版本11或更高版本。 - 将您的代码移到GOPATH之外或设置
export GO111MODULE=on
。 go mod init [module path]
:这将从Gopkg.lock导入依赖项。go mod tidy
:这将删除不必要的导入,并添加间接导入。rm -rf vendor/
:删除供应商文件夹的可选步骤。go build
:做一个测试构建,看它是否有效。rm -f Gopkg.lock Gopkg.toml
:删除用于Dep的过时文件。
Go通过读取Gopkg.lock
文件从Dep导入了我的依赖项,并创建了一个go.mod
文件。
如果要保留供应商文件夹:
- 运行
go mod vendor
将依赖项复制到vendor文件夹中。 - 运行
go build -mod=vendor
以确保go build
使用您的供应商文件夹。
另一答案
要添加到@Nicholas答案:
qazxsw poi来自官方golang文档:
要为现有项目创建go.mod:
- 导航到GOPATH之外的模块源树的根目录:
Here
- 创建初始模块定义并将其写入go.mod文件:
$ export GO111MODULE=on # manually active module mode
$ cd $GOPATH/src/<project path> # e.g., cd $GOPATH/src/you/hello
此步骤从任何现有的$ go mod init
Gopkg.lock文件或dep转换,添加require语句以匹配现有配置。
- 构建模块。从模块的根目录执行时,。/ ...模式匹配当前模块中的所有包。 go build将根据需要自动添加缺失或未转换的依赖项,以满足此特定构建调用的导入:
from any of the other nine total supported dependency formats
- 按配置测试模块,以确保它适用于所选版本:
$ go build ./...
- (可选)运行模块的测试以及所有直接和间接依赖项的测试以检查不兼容性:
$ go test ./...
以上是关于如何从Dep迁移到Go模块的主要内容,如果未能解决你的问题,请参考以下文章