golang のベンダーメカニズムについて話しましょう

PHPz
リリース: 2023-04-06 10:39:49
オリジナル
1262 人が閲覧しました

Golang は、強力なマルチスレッド機能と効率的なガベージ コレクション メカニズムを備えた人気のあるプログラミング言語であり、多くの開発者に好まれています。 Golang を使用して開発する場合、多くのサードパーティのライブラリやパッケージを参照する必要があることがよくありますが、このとき、このプロセスを管理するためにベンダーのメカニズムが使用されます。

ベンダー メカニズムの概要

ベンダー メカニズムは、Golang バージョン 1.5 で導入されたパッケージ管理メカニズムで、Golang がサードパーティ ライブラリを参照するときに発生する可能性のあるバージョン競合の問題を解決することを目的としています。ベンダー メカニズムを使用する前は、Golang のパッケージ管理メカニズムは主に GOPATH を使用していました。これは、すべてのサードパーティ ライブラリが管理のために同じディレクトリにダウンロードされることを意味します。

ただし、このメカニズムには問題があります。異なるプロジェクトが同じライブラリの異なるバージョンを参照する必要がある場合、バージョンの競合が発生する可能性があり、開発者はコードを別のディレクトリに必死にコピーする必要さえあり、非常に不便です。

したがって、Golang バージョン 1.5 ではベンダー メカニズムが導入され、サードパーティ ライブラリのコードをプロジェクトのコード リポジトリに直接コピーできるようになり、各プロジェクトが干渉することなく独自のバージョンのライブラリを使用できるようになりました。他のプロジェクトからの依存関係の問題が不要に発生することはありません。

ベンダー メカニズムのインストール プロセス

ベンダー メカニズムの役割を理解した後、ベンダー メカニズムのインストールを完了する方法について説明します。

Golang 1.6 より前のバージョンでは、ベンダー メカニズムはデフォルトでオフになっています。ベンダー メカニズムを有効にするには、コードをコンパイルするときにマーク -vendor を追加する必要があります。例:

go build -v -vendor
ログイン後にコピー

Golang 1.6 以降のバージョンでは、ベンダー メカニズムがデフォルトで有効になっているため、プロジェクトのルート ディレクトリにベンダー ディレクトリを作成するだけで済みます。

ベンダー ディレクトリを作成した後、 go get コマンドを使用して、サードパーティのライブラリとその依存ライブラリをインストールできます。たとえば、github.com/go-sql-driver/mysql をインストールする場合は、次のコマンドを使用してインストールできます。

GO15VENDOREXPERIMENT=1 go get github.com/go-sql-driver/mysql
ログイン後にコピー

このコマンドは、github.com/go-sql-ドライバーをベンダー ディレクトリ./mysql ディレクトリに配置し、ライブラリのすべての依存ライブラリをダウンロードし、そのコードをベンダー ディレクトリにコピーします。

サードパーティ ライブラリのインストールが完了したら、ベンダー メカニズムを使用してプロジェクトの依存関係を管理できます。

概要

ベンダー メカニズムを使用すると、サードパーティ ライブラリを参照する際の Golang のバージョン競合の問題を効果的に解決できるため、各プロジェクトが独自のバージョンのライブラリを個別に使用できるようになります。ベンダー メカニズムのインストールは複雑ではなく、プロジェクトのルート ディレクトリにベンダー ディレクトリを作成し、 go get コマンドを使用してサードパーティ ライブラリとその依存ライブラリをインストールするだけです。 Golang を使用して開発を行っている場合は、より便利な開発エクスペリエンスを提供すると信じて、ベンダー メカニズムを試してみることを強くお勧めします。

以上がgolang のベンダーメカニズムについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!