次の golang チュートリアル コラムでは、GO モジュールの理解と遭遇する問題について紹介します。
使用した go バージョンは 1.16.5、コード エディターは GoLang2020.3.4、GO モジュールのテストは window10 で実行されました
GOROOT は go のインストール パスを指し、GOPATH は go のプロジェクト パスを指します。GOModules 以前は GOPATH が使用されていました。GOPATH には多くの問題があるため、GOModules は
GOPATH モードにはバージョン管理の概念がないため、致命的な欠陥があり、少なくとも次のような問題が発生します。問題:
1. go get を実行するとき、バージョン情報を期待することはできません。つまり、現在更新しているバージョンを知ることも、
2 を指定して期待する特定のバージョンを取得することもできません。 Go アプリケーションを実行する場合、依存することが予想されるサードパーティ ライブラリの同じバージョンを他の人が持っていることを保証することはできません。つまり、プロジェクトの依存関係ライブラリ管理の観点からは、全員の依存関係のバージョンが同じであることは保証できません。一貫性のある
3. GOPATHモードでのインポートパスはすべて同じgithub.com/foo/barであるため、v1、v2、v3などの異なるバージョンの参照問題を処理できません。
4. Go 言語公式は、Go1.11 から Go モジュール (旧 vgo) を推奨し始めました。Go1.13 からは、GOPATH 使用モードの使用は推奨されなくなりました。Go モジュールは徐々に安定してきました。新しいプロジェクトでそれらを使用し続ける必要はありません。GOPATH モード。
1. Go 言語の長年にわたる依存関係管理の問題
2. 既存の GOPATH の使用を「排除」するモデル
3. 統合コミュニティ内のその他の依存関係管理ツール (移行機能を提供)
1. プロジェクト パスの設定
2. エディターを開き、プロジェクトのルート ディレクトリで次のコマンドを実行します
##3 、サードパーティの依存関係をインストールします #これで、次の関係が確認できます。 GOModules と GOPATH これで、「go get」コマンドは、サードパーティの依存関係パッケージを GOPATH パスに配置します。複数人での開発中に全員の開発バージョンを一貫させるために、GOModules はバージョン管理を行い、全員が同じバージョンを使用するようにします。私の理解では、GOModules は GOPATH のアップグレード バージョンです。go mod init
最後に、私が使用しているエディターは GOLang であることに注意してください。GOModules には次のようなものがあります。問題。この問題は、主にエディターが原因で、サードパーティの依存関係パッケージが正常にダウンロードおよびインストールされたことを示しています。
解決策は次のとおりです。
以上がGO モジュールと発生した問題についての理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。