[解決済み] go mod vendor` コマンドの目的は何ですか?
質問
その ドキュメンテーション と書かれています。
go mod vendor コマンドは、vendor という名前のディレクトリを メインモジュールのルートディレクトリには、すべてのパッケージのコピーが含まれています。 メインモジュールのパッケージのビルドとテストをサポートするために必要です。 メインモジュール外のパッケージのテストによってのみインポートされるパッケージがあります。 は含まれません。
golangbyexample は言う。
また、VCS(バージョン管理システム)のベンダーディレクトリを確認することもできます。 コントロールシステム)。これは 依存関係はすでに存在するため、実行時にダウンロードする必要があります。 VCSにチェックインされたベンダーフォルダで
私は、モジュール(
go.mod
,
go.sum
) がバージョン管理の面倒をみてくれます。また、依存関係のダウンロードは、プログラムを最初に実行するときだけでいいと思います。
では、どのようにコマンド
go mod vendor
便利ですか?その目的やユースケースは何でしょうか?
どのように解決するのですか?
Go モジュールはバージョン管理の面倒を見ますが、モジュールがインターネットから消えてしまったり、インターネットが利用できなくなったりした場合の面倒を見るとは限りません。モジュールが利用できない場合、コードをビルドすることはできません。
Go Proxyは、モジュールをミラーリングすることで、消えていくモジュールをある程度緩和しますが、すべてのモジュールに対して、常にそれを行うとは限りません。
<ブロッククオート以前は利用できたモジュールが、なぜミラーで利用できなくなったのですか?
proxy.golang.org は、すべてのモジュールを永久に保存するわけではありません。理由はいくつかありますが、proxy.golang.orgが適切なライセンスを検出できない場合がその一つです。この場合、一時的にキャッシュされたモジュールのコピーだけが利用可能になり、元のソースから削除され古くなると利用できなくなる可能性があります。チェックサムは、ミラーで利用できなくなったかどうかに関係なく、チェックサムデータベースに残ります。
詳しくはこちらでご覧ください。 https://proxy.golang.org/
別の方法として、モジュールをフォークして
Goモジュール
replace
ディレクティブ
で、インポートパスを別のもの、例えばあなたのフォークにリダイレクトすることができます。
go.mod
ファイルを変更することなく使用できます。この方法は
colm.anseo
.
インターネットアクセスについてですが、大規模なサーバーファームを運営しており、複数のマシンにコードが必要な場合、インターネットからファーム内のすべてのマシンにダウンロードすることは非効率的であり、セキュリティリスクにもなります。それよりも
go mod vendor
を内部レポにコピーして、これを持ち歩く。大企業では、データセンター内の複数のサーバーにコードを配備するために、内部的な方法を用いています。
関連
-
[解決済み] Goで配列を反転させるにはどうしたらいいですか?
-
[解決済み] Notepad++ 用の Go 言語プラグイン
-
[解決済み] GORMでレコードを作成・更新するには?
-
[解決済み] Cgo: すみません、未実装です: 64ビットモードはコンパイルされていません。
-
goland reports an error: package XXX is not in GOROOT (X:\XXXGo ╱src╱XXX)
-
runnerw.exe: CreateProcess はエラー 216 で失敗しました。プロセスが終了し、終了コード 216 が表示された 実行するプロジェクトがこの例外をスローする
-
[解決済み] go getコマンドとgo mod downloadコマンドの違いは何ですか?
-
[解決済み] インポートサイクル不可
-
[解決済み] 全モジュールのアップデートを行う
-
[解決済み】複数ファイルの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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Cgo: すみません、未実装です: 64ビットモードはコンパイルされていません。
-
[解決済み] インポート "google/api/annotations.proto" が見つからないか、エラーが発生しました。依存関係として追加するにはどうすればよいですか?
-
[解決済み] Go パッケージは log.Fatal を使うべきですか、そしてそれはいつですか?
-
Windowsのプロパティダイアログボックスのエンコーディングの問題 ファイル名、ディレクトリ名、ボリュームラベルの構文が正しくありません。
-
[解決済み] 地図をコピーするには?
-
[解決済み] Goテスト文字列が部分文字列を含む
-
[解決済み] go install` は `go.mod` にレコードを追加します。
-
[解決済み] go get を使って特定のバージョンのパッケージをインポートするにはどうすればよいですか?
-
[解決済み】C言語の三項演算子に相当するGoの慣用句は何ですか?
-
[解決済み】スライスの最後の要素を取得する方法は?