問題タブ [vendoring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - go dep でベンダーパッケージが削除されるのを無視して防止しますか?
少し問題があります。依存している Go プロジェクト (DPkg) があり、このプロジェクトには別のパッケージ (TPkg) への小さな依存関係があります。
質問とは関係のないいくつかの理由で、現時点では TPkg をビルドできませんが、TPkg を呼び出す DPkg の部分を使用したことがないことがわかっているため、先に進み、ベンダー フォルダーに偽の DPkg を再作成しました。
問題は、 を実行するたびにdep ensure、dep がこのパッケージを処理しようとすることです。ignoredGopkg.toml で制約を設定しようとしましたが、dep はベンダー フォルダー内のコードを削除するだけです。prune.projectTPkg をマークする制約をさらに追加しようとしましunused-packages = falseたが、dep がパッケージを削除するのを妨げません。
dep にTPkg を完全に無視するように指示する方法はありますか? つまり、TPkg を変更したり削除したりしないでください。
これが何を意味するのか、問題や保守性の面でどれほど悪いのかはわかっていますが、それはここでの問題ではありません 。
go - 非標準ポート経由でアクセスされるカスタム Go モジュールの管理
バックグラウンド
私の会社では、Bit Bucket を使用して Git リポジトリをホストしています。サーバーへのすべてのトラフィックは、カスタムの非標準ポートを通過します。リポジトリからのクローン作成は のようになりgit clone ssh://git@stash.company.com:9999/repo/path/name.gitます。
問題
このサーバーでホストされ、 によって管理される Go モジュールを作成したいのですがgo mod、トラフィックがポート9999を通過する必要があるため、これは非常に困難です。これはgo mod、標準ポートで動作し、さまざまなモジュールのポートをカスタマイズする方法を提供していないように見えるためです。
私の質問
go mod非標準ポートを持つプライベート git サーバーでホストされている Go モジュールを管理するために使用することは可能ですか?
試みられた解決策
ベンダー
これは、ソリューションの提供に最も近いようです。最初にgo mod vendorこれらの Go モジュールを使用する Go アプリケーションを作成し、次にディレクトリgit submodule内の Go モジュールを作成しますvendor/。これは、モジュールを更新または追加する必要がある時点まで完全に機能します。go mod tidyカスタムGoモジュールの「git URL」にアクセスできないため、他のGoモジュールのダウンロードまたは更新に失敗し続けます。-eフラグが設定されている場合でも。
編集.gitconfig
を編集し.gitconfigて、ポートなしの URL をポート付きの URL に置き換えることは、機能するソリューションですが、非常に汚いハックです。まず、これらの編集は、すべての新しいモジュールと個々の開発者に対して行う必要があります。第二に、これらのリポジトリで作業しているときに、これにより他の git プロセスが停止する可能性があります。