[解決済み] Go モジュールのローカル リポジトリとして Artifactory を使用する方法
質問
- 私はArtifactoryをセットアップして動作させ、他のアーティファクト(RPMなど)を提供しています。
-
公開・非公開のGoプログラムおよびライブラリのローカルコピーを持ちたい
- バージョンの一貫性を確保するため
- 公開リポジトリでバグ出しを行うため
- 公開リポジトリを不正な改変から守るため
- ArtifactoryにGoリポジトリを作成し、frog-cliを使用して、例としてspf13/viperを投入しました(zipファイルとmodファイルが作成されました)。
質問です。
- ZIP ファイルは、Artifactory に Go モジュールを保存する適切な方法ですか?
- Goプログラムの中でzipファイルをどのように使用するのですか?例えば、zip ファイルを取得するための URL は以下の通りです。 http://hostname/artifactory/reponame/github.com/spf13/viper/@v/v1.6.1.zip (MODファイルは.mod) 例えば、GOPATHに何らかの値を設定すればいいのでしょうか?
- すべての要件が自動的にローカルのArtifactoryリポジトリに含まれるようにする方法はありますか?プライマリパッケージ(例:viper)のローカルArtifactoryリポジトリへのインクルージョン時に?
解決方法は?
3番目の質問に答えるのが先
もう一つ、参考になる記事があります。 https://jfrog.com/blog/why-goproxy-matters-and-which-to-pick/ . プライベートなgoモジュールをArtifactoryに公開するには、2つの方法があります。1つは伝統的な方法、つまりJFrog CLIを使う方法です。 記事 .
もうひとつの方法は、リモートリポジトリを GitHub のプライベートリポジトリに指定することです。この機能は最近追加されました。この場合、仮想リポジトリはふたつのリモートを持つことになります。最初のリモートリポジトリのデフォルトは GoCenter を経由して、公開されているGoモジュールが取得されます。2番目のリモートリポジトリは、プライベートなVCSシステムを指します。
GOPROXY を仮想 Go モジュールリポジトリのみに設定すると、Artifactory がパブリックとプライベートの両方の Go モジュールの真実のソースであり続けることが保証されます。コンパイル済みの go バイナリを保存したい場合は、ローカルの汎用リポジトリを使用できますが、汎用リポジトリのコンテンツを構造化するためにカスタムレイアウトを使用することをお勧めします。
最初の2つの質問に答えます。
GoモジュールはGolangのパッケージマネージャで、Javaのmavenと同じようなものです。Artifactoryでは、すべてのgoモジュールに対して、go.mod、.info、アーカイブファイルの3つのファイルが存在します。
Artifactory は GOPROXY プロトコルに従っているので、go.mod に記述された依存関係は、自動的に仮想リポジトリから取得されます。これは、パッケージ(ソースファイル)のコレクションであるアーカイブファイルも含みます。
GoSumDB リクエストがキャッシュされるため、タイルやルックアップ リクエストなど、パブリック Go モジュール用に保存される追加のメタデータがあり、Artifactory がエアギャップ環境でもモジュールとメタデータの真実のソースであり続けることを保証しています。
関連
-
[解決済み] テスト
-
[解決済み】golangでデータ構造をディープコピーする
-
[解決済み] インポート "google/api/annotations.proto" が見つからないか、エラーが発生しました。依存関係として追加するにはどうすればよいですか?
-
[解決済み] Goプロセスをフォークする方法を教えてください。
-
[解決済み] Goテスト文字列が部分文字列を含む
-
[解決済み] Golang 構造体へのキャストインターフェイス
-
[解決済み] golangでリーズナブルなスタック実装をお探しですか?
-
[解決済み】関数宣言の構文:関数名の前に括弧でくくられたもの
-
[解決済み】Goで設定を処理する方法【終了しました
-
[解決済み】アプリケーションの自動ビルドによるバージョン管理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Go: パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインタのデリファレンス
-
[解決済み] SETNXでシングルインスタンスのRedisをロックする
-
[解決済み] 地図をコピーするには?
-
[解決済み] go getとgo installの違いは何ですか?
-
[解決済み] go get を使って特定のバージョンのパッケージをインポートするにはどうすればよいですか?
-
[解決済み] パッケージ <package_name> を提供するモジュールの go.sum のエントリがありません。
-
[解決済み] ゼロ終端のバイト配列を文字列に変換するにはどうすればよいですか?
-
パッケージ "github.com/gorilla/websocket" を見つけることができません。
-
[解決済み】C言語の三項演算子に相当するGoの慣用句は何ですか?
-
[解決済み】GoはREPLを提供しますか?