我当前正在使用Dep,并且想开始使用Go模块。
如何迁移?
答案 0 :(得分:6)
从Dep迁移到Go Modules非常简单。
go version
,并确保您使用的是11版或更高版本。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
将您的依赖项复制到供应商文件夹中。go build -mod=vendor
以确保go build
使用您的供应商文件夹。答案 1 :(得分:0)
要添加到@Nicholas答案中,
Here来自官方的golang文档:
要为现有项目创建go.mod:
$ export GO111MODULE=on # manually active module mode
$ cd $GOPATH/src/<project path> # e.g., cd $GOPATH/src/you/hello
$ go mod init
此步骤从任何现有的dep Gopkg.lock文件或from any of the other nine total supported dependency formats进行转换,并添加require语句以匹配现有配置。
$ go build ./...
$ go test ./...
(可选)运行模块的测试以及所有直接和间接依赖项的测试,以检查不兼容性:
$ go test all
答案 2 :(得分:0)
另一种升级模块的方法。
删除Gopkg.toml和Gopkg.lock
rm Gopkg.*
初始化Go模块
GO111MODULE=on go mod init
运行go mod tidy以拉出所有间接模块并删除未使用的模块
GO111MODULE=on go mod tidy
运行构建以确保一切正常
go build
如果遇到一些找不到的模块,请提示,然后手动更新go.mod文件中的modules标记。