ホームページ  >  記事  >  バックエンド開発  >  ワークスペースを依存関係として別の go リポジトリにインポートするにはどうすればよいですか?

ワークスペースを依存関係として別の go リポジトリにインポートするにはどうすればよいですか?

王林
王林転載
2024-02-09 08:33:20625ブラウズ

如何将工作区作为依赖项导入到另一个 go 存储库中?

php Xiaobian Yuzai が Go 言語に関する質問を共有します。「ワークスペースを依存関係として別の Go リポジトリにインポートするにはどうすればよいですか?」Go 言語では開発中、依存関係の管理は一般的な問題です。場合によっては、プロジェクトで使用するためにワークスペースを依存関係として別のリポジトリにインポートする必要がある場合があります。この記事では、Go 言語プロジェクトの依存関係をより適切に管理できるように、この目標を達成する方法を詳しく紹介します。

質問の内容

次のような構造のマルチワークスペース プロジェクトがあります:

リーリー

プロジェクトにはサブモジュール apps が含まれており、その go.work ファイルには次の内容が含まれています:

リーリー

この app サブモジュールをライブラリとしてインポートしたい別の go プロジェクト (別のリポジトリ) があります。ここに go.mod があります:

リーリー

次に、次のコードがあります:

リーリー

コンパイルは次のエラーで失敗しました:

リーリー

マルチワークスペースプロジェクトからサブモジュールをインポートするにはどうすればよいですか?

回避策

ワークスペースをインポートできません。

現在の状況は次のとおりです:

github.com/zhaoyi0113/test-go-module/apps モジュール があり、そのモジュール パス github.com/zhaoyi0113/test-go- として宣言しています。モジュール 。モジュールの実際のパスが宣言されたパスと一致しないため、モジュールは使用できません (パスの 1 つで /apps が欠落していることに注意してください)。

xxxx モジュールには github.com/zhaoyi0113/test-go-module が必要ですが、モジュールがこのパスに見つかりません。前の段落で説明したように、これは apps サブディレクトリにあります。

モジュールを配置する場所に応じて、考えられる修正が 2 つあります。

インポートした go.mod を 現在のディレクトリ に保持したい場合は、モジュール パスを更新して apps:

インポートモジュールの go.mod:

リーリー

モジュールをインポートするためのgo.mod:

リーリー

2 番目も通常のオプションです go.mod をプロジェクトのルート ディレクトリに置き、go.work ファイルをプロジェクトの外に置くだけです。この機能を実装するには、go.mod をプロジェクトのルート (元のコミットにあったとおり) に移動し、go.work を別の場所に移動します。インポートされたモジュールを変更する必要はありません。

以上がワークスペースを依存関係として別の go リポジトリにインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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