#php エディタ Zimo の紹介: 最近、Go 言語のモジュール管理ツールに新しい関数マルチパス モジュールが導入されました。この機能の導入により、開発者は Go モジュールを使用するときにモジュール パスをより柔軟に指定できるようになります。以前は、開発者は固定パスにモジュールをインストールすることしかできず、その結果、モジュールの依存関係がより複雑になってしまいました。現在、マルチパス モジュールの出現により、開発者にはより多くの選択肢が提供され、モジュール管理がより便利かつ柔軟になりました。開発者はプロジェクトのニーズに応じてモジュールをさまざまなパスにインストールできるため、より優れたモジュール管理とバージョン管理を実現できます。この新機能の導入により、Go言語の開発効率と利便性がさらに向上します。
複数の場所にミラーリングされた go モジュールがあります。 1 つは Gitlab にあり、もう 1 つは bitbucket にあります。新しい gitlab の場所に基づいて実行しようとすると、次のメッセージが表示されます:
リーリーこれが起こる理由はわかっていますが、go.mod を「or」として定義するにはどうすればよいですか?
短い答え: それはできません。
しかし、すべてが失われるわけではないかもしれません...モジュール パスで参照される場所と、何らかの理由でダウンロードしたい別の場所にコードがある場合は、指定したモジュール パスからの参照をリダイレクトするように
git エイリアス を設定できます。すべてへ 必要なダウンロード ソース:
リーリー
完全に 置き換える必要はありません。エイリアスを使用して、任意のモジュール パス上の プレフィックス を置き換えることができます。したがって、server 上で多数のモジュールをホストし、パス がこれらのモジュールの すべての をカバーする場合 (リポジトリ名が同じである限り)。 たとえば、これを使用して、ローカルの azuredevops サーバー git リポジトリでホストされているモジュールの「わかりやすい」モジュール パスを作成します。次に例を示します。 リーリー これにより、モジュールは自身を
tfs.myorg.com/somemodule.gitとして識別できるようになりますが、
go get がこの git を取得しようとすると https://tfs.myorg.com/myorgcollection/_git/somemodule.git
で見つけます。
(.git
)
正直に言うと、同じサーバー上のパスを「書き換える」ためだけに、まったく別のサーバーでこれを試したことはありませんが、原理的には機能するはずです。したがって、あなたの場合:
リーリー
これは
レベルのものに適用されるため、
go に関する限り、 であっても
bitbucket.org からフェッチされます。 git
gitlab.com
はバックグラウンドでアクセスされます。
つまり、 go get
を実行するときは、
モジュール パスを引用符で囲む必要があります:
リーリー
これの唯一の欠点は、モジュール パスで宣言された場所以外の場所から go get を必要とする任意またはすべてのワークステーション (およびビルド マシン) でエイリアスを構成する必要があることです。
以上が複数のパスを持つ Go モジュールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。