[英]How do I migrate from Dep to Go Modules
我目前正在使用 Dep 並想開始使用 Go 模塊。
我如何遷移?
從 Dep 遷移到 Go 模塊非常容易。
go version
並確保您使用的是 Go 版本 1.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
將您的依賴項復制到 vendor 文件夾中。go build -mod=vendor
以確保go build
使用您的供應商文件夾。要添加到@Nicholas 的答案中:
這是來自官方的 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 文件或其他九種支持的依賴格式中的任何一種轉換,添加 require 語句以匹配現有配置。
$ go build ./...
$ go test ./...
(可選)運行模塊的測試以及所有直接和間接依賴項的測試以檢查不兼容性:
$ go test all
另一種升級到模塊的方法。
刪除 Gopkg.toml 和 Gopkg.lock
rm Gopkg.*
初始化 Go 模塊
GO111MODULE=on go mod init
運行 go mod tidy 以拉取所有間接模塊並刪除未使用的模塊
GO111MODULE=on go mod tidy
運行構建以確保一切正常
go build
提示,如果您遇到幾個未找到的模塊,請手動更新 go.mod 文件中的模塊標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.