Go モジュールでの複数のエントリ ポイントの管理
Go プロジェクトに複数のエントリ ポイント (例: 複数の main メソッド) が含まれる場合、各エントリを構築するこの点は依存関係に関連した課題を引き起こす可能性がありますManagement.
問題
異なる依存関係に依存する異なるエントリ ポイントを構築する場合、go build コマンドが意図せず go.mod ファイルを変更し、次のように判断された依存関係を削除する場合があります。現在のエントリ ポイントには不要です。これにより、後続のエントリ ポイントを構築するときに依存関係の競合が発生する可能性があります。
解決策: サブモジュール
この問題の解決策は、サブモジュールを使用することです。エントリ ポイントに関連付けられた各 cmd ディレクトリに個別の go.mod ファイルを作成することで、各エントリ ポイントの依存関係を分離できます。
サブモジュールの作成
各 cmd ディレクトリに go.mod を作成します。 file:
module github.com/your-org/your-project/cmd/entry_point_name
ルートの go.mod ファイルで、replace ディレクティブを使用します。依存関係をエントリポイントからローカルにポイントするsubmodule:
replace github.com/your-org/your-project/cmd/entry_point_name => ./cmd/entry_point_name
サブモジュールの構築
go.mod ファイルを変更せずに特定のエントリ ポイントを構築するには、次のコマンドを使用します。 command:
go build -mod=readonly -o entry_point_name cmd/entry_point_name/main.go
利点
サブモジュールを使用すると、次のことが可能になります。
追加メモ
より複雑な使用例の場合は、次のことが必要になる場合があります。 Go ツールチェーンで追加の設定を構成します。詳細なガイダンスについては、Go のドキュメントと問題トラッカーを参照してください。
以上が複数のエントリ ポイントを持つ Go プロジェクトを構築するときに依存関係を効果的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。