ホームページ >バックエンド開発 >Golang >Go モジュールでプライベート リポジトリの依存関係を管理するにはどうすればよいですか?

Go モジュールでプライベート リポジトリの依存関係を管理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-08 17:24:11227ブラウズ

How Do I Manage Private Repository Dependencies with Go Modules?

Go モジュール、プライベート リポジトリ、および GOPATH

プライベート モジュールの依存関係について

Go モジュールの「ドットなし」パス「mycompany/mylib」などは、標準リポジトリ用に予約されています。これは、プライベート リポジトリを介してアクセスされるモジュールについては、ドメイン名とプロジェクトをバインドする必要があることを意味します。

All-or-Nothing モジュール依存関係管理

Go モジュールは、「すべて」を強制します。 -or-nothing」アプローチ。モジュールを使用する場合、モジュール システム (go get) を使用してすべての依存関係を解決する必要があります。 GOPATH は、ダウンロードされたモジュールのキャッシュとして使用する場合を除いて冗長になります。

プライベート リポジトリでの反復処理の結果

以前は、開発者は変更をコミットする前にローカルでライブラリを開発できました。モジュールを使用すると、2 つのオプションがあります:

  1. リモート依存関係を受け入れて反復する: これには、リモート リポジトリからの変更のプッシュとプルが含まれ、潜在的にインターネットへの常時接続が必要になります。
  2. 単一の Git リポジトリにマージ: このアプローチでは、すべてのライブラリを単一のリポジトリに結合し、リモートの依存関係が必要です。

簡略化されたコードを使用したケーススタディ

サンプル コードは、dep モジュールから Go モジュールに移行する際の一般的な問題を表しています。 GO111MODULE が「on」に設定されている場合、「パス mycompany/mylib のモジュールが見つかりません」というエラーが発生します。これは、mylib がまだモジュールではないためです。

解決策

myprogram の依存関係として mylib のプライベート リポジトリを使用するには:

  1. mylib のプライベート リポジトリを作成します。
  2. GOPRIVATE を使用して指定しますmylib はプライベート リポジトリであること。
  3. go mod edit -replace mycompany/mylib=git.example.com/mycompany/mylib を使用して mylib をインポートします。
  4. 変更をプライベート リポジトリにプッシュします。

追加考慮事項

  • GOPROXY はプライベート モジュールを使用したオフライン開発に使用できます。
  • GITHUB_TOKEN 回避策は認証目的に適用できます。

以上がGo モジュールでプライベート リポジトリの依存関係を管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。