php エディタ Baicao では、Go ワークスペースを使用して依存関係をローカルにロードする方法を紹介します。 Go 言語プロジェクトを開発するとき、私たちはさまざまなサードパーティのライブラリや依存関係を使用することがよくあります。これらの依存関係の管理と読み込みを容易にするために、Go 言語は強力なワークスペース メカニズムを提供します。ワークスペース パスを設定し、 go mod コマンドを使用すると、プロジェクトに必要な依存関係を迅速かつ簡単にロードして管理できるため、開発効率とコードの品質が向上します。 go workspace を使用して依存関係をローカルにロードする方法を詳しく見てみましょう。
いくつかの go モジュールを含む go ワークスペース プロジェクトがあります。 1 つのモジュールは、同じワークスペース内の別のモジュールに依存します。依存関係をインターネットからダウンロードせずにローカルで解決したいと考えています。
hello
と example
という 2 つのモジュールがあります。 hello
は example
に依存します。その構造は次のとおりです:
go.work
は:
モジュール hello
では、example -> hello
モジュールから宣言された関数を使用する必要があります。 example/hello
の go.mod
は次のとおりです:
hello
ディレクトリで go get github.com/example/hello
を実行すると、エラーが発生します:
go
は依然として、ローカル ワークスペースを参照するのではなく、github.com
から依存関係をダウンロードしようとしているようです。 go
に最初にローカル ディレクトリを強制的に参照させる方法はありますか?
完全なコードは次のとおりです: https://github.com/zhaoyi0113/go-workspace
go.mod ファイル内のモジュール名はプロジェクト構造に関連しています。そうしないと、ランダムな名前が付けられると他のライブラリと競合が発生し、依存関係を構築するときにどのライブラリをプルすればよいかが不明確になる可能性があります。
言い換えれば、GitHub からコードを取得するには、ディレクトリ構造が一致する必要があります。したがって、「example」ディレクトリの下にある go.mod ファイル内のモジュール名を次のように変更します。 リーリー
「hello」ディレクトリの場合:リーリー
「hello」ディレクトリが「example」モジュールに依存する必要がある場合は、次のようにインポートします。リーリー
ここで、バージョンを作成した場合、「xxxx」はバージョン番号になります。そうでない場合は、GitHub にプッシュしたコードの Git コミット ハッシュを使用できます。 「例」の Git ハッシュは、GitHub プロジェクト ページで見つけることができます。 「hello」ディレクトリで、次のコマンドを実行します:リーリー
ただし、この方法では、GitHub にプッシュされたコードのみを取得できます。開発をローカルですばやくデバッグしたい場合は、go.mod ファイルに「replace」ディレクティブを追加できます。 リーリー更新
プロジェクト構造を整理するにはパッケージ アプローチを使用することをお勧めします。モジュールはより独立しており、通常は異なるリポジトリに配置される必要があります。
リーリー以上がgo workspaceを使用して依存関係をローカルにロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。