ホームページ  >  記事  >  バックエンド開発  >  GO モジュールと発生した問題についての理解

GO モジュールと発生した問題についての理解

藏色散人
藏色散人転載
2021-06-26 14:45:151966ブラウズ

次の golang チュートリアル コラムでは、GO モジュールの理解と遭遇する問題について紹介します。

使用した go バージョンは 1.16.5、コード エディターは GoLang2020.3.4、GO モジュールのテストは window10 で実行されました

GOModules が存在する理由

GOROOT は go のインストール パスを指し、GOPATH は go のプロジェクト パスを指します。GOModules 以前は GOPATH が使用されていました。GOPATH には多くの問題があるため、GOModules は

GOPATH に関する問題

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 モード。

GOModules の登場によって解決された問題

1. Go 言語の長年にわたる依存関係管理の問題
2. 既存の GOPATH の使用を「排除」するモデル
3. 統合コミュニティ内のその他の依存関係管理ツール (移行機能を提供)

GOModules と GOPATH の関係

1. プロジェクト パスの設定
GO Modules的使用与遇到的问题与解决方式
2. エディターを開き、プロジェクトのルート ディレクトリで次のコマンドを実行します

go mod init

GO Modules的使用与遇到的问题与解决方式

##3 、サードパーティの依存関係をインストールします

GO Modules的使用与遇到的问题与解决方式

GO Modules的使用与遇到的问题与解决方式

GO Modules的使用与遇到的问题与解决方式

#これで、次の関係が確認できます。 GOModules と GOPATH これで、「go get」コマンドは、サードパーティの依存関係パッケージを GOPATH パスに配置します。複数人での開発中に全員の開発バージョンを一貫させるために、GOModules はバージョン管理を行い、全員が同じバージョンを使用するようにします。私の理解では、GOModules は GOPATH のアップグレード バージョンです。

GO Modules的理解和遇到的问题解决方法最後に、私が使用しているエディターは GOLang であることに注意してください。GOModules には次のようなものがあります。問題。この問題は、主にエディターが原因で、サードパーティの依存関係パッケージが正常にダウンロードおよびインストールされたことを示しています。


GO Modules的使用与遇到的问题与解决方式解決策は次のとおりです。

GO Modules的使用与遇到的问题与解决方式

GO Modules的使用与遇到的问题与解决方式

以上がGO モジュールと発生した問題についての理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。