個人 Git リポジトリでの「go get」の使用: 総合ガイド
課題
個人用 Git リポジトリでパッケージを「go get」できるようにしようとすると、「インポート パスが認識されません」というエラー メッセージが表示されることがよくあります。この記事では、この問題に対する包括的な解決策を提供します。
META タグについて
Go では、パッケージの内容を指定する Git リポジトリのルート HTML ページに META タグが必要です。インポートパスとリポジトリURL。構文は次のとおりです。
<meta name="go-import" content="import_path git repo_url">
サーバーのセットアップ
「go get」機能が動作するには、Git リポジトリをホストするサーバーを構成する必要があります。 「?go-get=1」パラメータを使用してリクエストが行われたときに META タグを返すようにします。
推奨 nginx 構成
次の nginx 書き換えルールを使用できます。これを達成するために使用されます:
location ~ "(/[^/]+/[^/]+)(/.*)?" { if ($arg_go-get = "1") { echo '<html><head><meta name="go-import" content="my.domain.com git git+ssh://[email protected]"/></head></html>'; } try_files $uri $uri/index.html $uri.html @gitlab; }
このルールは、Git リポジトリへの SSH アクセスを前提としています。 HTTPS が使用されている場合は、それに応じて URL を変更します。
META タグの例
リクエスト "http://mygit.server/group/project?go-get=1" " は次の META タグを返すはずです:
<meta content='mygit.server/group/project git git+ssh://[email protected]/group/project.git' name='go-import'>
パッケージのテスト
サーバーを構成した後、パッケージが "go get" に利用できるかどうかを確認できます。次のコマンドを実行します:
<code class="Bash">go get example.com/user/package</code>
このコマンドはパッケージを正常にダウンロードしてインストールします。
以上が個人用 Git リポジトリで「go get」でパッケージを利用できるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。