私は現在Depを使用しており、Goモジュールの使用を開始したいと考えています。
どうやって移行しますか?
Dep to 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
を実行して、依存関係をベンダーフォルダーにコピーします。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ファイルまたは サポートされている他の9つの依存関係形式のいずれか から変換し、既存の構成と一致するように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ファイルのモジュールタグを手動で更新してください。