ホームページ  >  記事  >  バックエンド開発  >  複数のパスを持つ Go モジュール

複数のパスを持つ Go モジュール

WBOY
WBOY転載
2024-02-10 11:30:10434ブラウズ

具有多个路径的 Go 模块

#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

サフィックスは必要な Azure Devops 機能

) 正直に言うと、同じサーバー上のパスを「書き換える」ためだけに、まったく別のサーバーでこれを試したことはありませんが、原理的には機能するはずです。したがって、あなたの場合: リーリー これは

git

レベルのものに適用されるため、

go

に関する限り、 であっても bitbucket.org からフェッチされます。 git gitlab.com はバックグラウンドでアクセスされます。 つまり、 go get を実行するときは、

宣言された

モジュール パスを引用符で囲む必要があります: リーリー これの唯一の欠点は、モジュール パスで宣言された場所以外の場所から go get を必要とする任意またはすべてのワークステーション (およびビルド マシン) でエイリアスを構成する必要があることです。

以上が複数のパスを持つ Go モジュールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。