目次
質問の内容
解決策
ホームページ バックエンド開発 Golang Golang、ローカルインポートパスからリモートインポートパスへの移動の問題

Golang、ローカルインポートパスからリモートインポートパスへの移動の問題

Feb 09, 2024 am 08:27 AM
golang開発

Golang、ローカルインポートパスからリモートインポートパスへの移動の問題

php エディタ Baicao が、Golang でのローカル インポート パスからリモート インポート パスへの移行に関する質問に答えます。 Golang 開発では、特に複数の人が開発やプロジェクトの移行に協力する場合に、ローカル インポート パスからリモート インポート パスに移行する状況によく遭遇します。この記事では、コードがスムーズに実行されるようにこの問題を正しく処理する方法について詳しく説明します。見てみましょう!

質問の内容

アプリケーションを異なるリポジトリに分割し始めたところです。多くの人と同じように、私も Go を扱い、リポジトリを変更するという苦労をしています。しかし、これらの質問には多くの質疑応答があるため、ここでは質問しません。

その代わり、簡単な質問があるのですが、理解できません。私のモジュールはすべて、大きなアプリケーションなので、単なるローカル参照です。たとえば、core/validate などです。

コンテンツを複数のリポジトリに移動します。ローカル参照で問題が発生するようだったので、いくつかの Q&A が示唆しているように、パスをリモート パス (例: gitlab.com/<group>/core.git/validate</group>) に変更しました。

ただし、gitlab.com/<group>/core.git/config</group>gitlab.com/<group>/core.git/ を参照している場合、問題が発生します。 validate</group> は、gitlab.com/ <group>/core.git/config</group>pck/mod/gitlab.com/... を指すようになったという意味ではありません。リモート サーバーを指すコンテンツ、または互い以外のどこかを指すコンテンツ (core/validate? のような相対パスしかない場合など) IDE (GoLand) では参照が見つからないと表示されるため、これらを変更すると次のようになります。

go mod init を実行して MOD を最初から再構築することは試していませんが、go mod tiny は機能せず、そうする必要があるかどうかはわかりません go も同様です。work でリモート パスを変更するのは問題ありませんが、IDE に表示されるインポートが見つかりません。

開発中にリモート参照を使用してコードに加えた変更を行う場合は、参照が指す場所になるように変更をプッシュする必要があるようです。おそらく go get Change toローカルのリモート パスを参照します。これは開発方法としては不適切なため、正しいとは言えません。

それでは、これらのリモート パスは開発でどのように機能するのでしょうか。何が足りないのでしょうか?

解決策

混乱を引き起こす可能性のある概念がいくつかあります。

モジュールはパッケージのコレクションです。モジュールに「mymodule」という名前を付けると、「mymodule」の下にあるすべてのパッケージの名前が「mymodule/pkg1」、「mymodule/pkg2/otherpkg」などになります。

これで、パッケージのインポート パスが得られます。インポート パスはパッケージの場所を示します。たとえば、ソース コードが「mymodule/pkg1」にあり、「mymodule/pkg2」をインポートする場合、これは同じモジュールの下にあるパッケージへの参照になります。

次に、「github.com/mygroup/othermodule」に「othermodule」という名前の別のモジュールがあると仮定します。このモジュールのパッケージを「github.com/mygroup/othermodule/pkg1」としてインポートします。 「othermodule/pkg1」が「othermodule/pkg2」を参照している場合でも、「othermodule/pkg2」は同じモジュール内にあるため、インポートされます。ただし、「mymodule/pkg1」からは「github.com/mygroup/othermodule/pkg2」としてインポートします。

Go モジュール システムは、他のモジュールからのバージョン参照を使用します。モジュールからパッケージをインクルードすると、モジュールの特定のバージョンが go.mod に追加されます。新しい変更をモジュールにプッシュする場合は、参照を更新してそれらの変更を含める必要があります。そのため、密結合したプロジェクトを複数のモジュールに分割しないことが最善です。

複数のモジュールを一緒に開発する場合は、リポジトリ上のバージョンを指す代わりに、「replace」ディレクティブを使用してモジュールのローカル コピーを使用します。

以上がGolang、ローカルインポートパスからリモートインポートパスへの移動の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Golang を使用して強力なデスクトップ アプリケーションを開発する Golang を使用して強力なデスクトップ アプリケーションを開発する Mar 19, 2024 pm 05:45 PM

Golang を使用して強力なデスクトップ アプリケーションを開発する インターネットの継続的な発展に伴い、人々はさまざまな種類のデスクトップ アプリケーションから切り離すことができなくなりました。開発者にとって、強力なデスクトップ アプリケーションを開発するには効率的なプログラミング言語を使用することが重要です。この記事では、Golang (Go 言語) を使用して強力なデスクトップ アプリケーションを開発する方法を紹介し、いくつかの具体的なコード例を示します。 Golang は Google が開発したオープンソースのプログラミング言語で、シンプルさ、効率性、強力な同時実行性などの特徴があり、以下の用途に非常に適しています。

Golang 開発におけるセキュリティの課題: ウイルス作成に悪用されるのを避けるには? Golang 開発におけるセキュリティの課題: ウイルス作成に悪用されるのを避けるには? Mar 19, 2024 pm 12:39 PM

Golang 開発におけるセキュリティの課題: ウイルス作成に悪用されるのを避けるには?プログラミングの分野で Golang が広く応用されているため、さまざまな種類のアプリケーションの開発に Golang を使用する開発者が増えています。ただし、他のプログラミング言語と同様、Golang 開発にはセキュリティ上の課題があります。特に、Golang のパワーと柔軟性により、Golang は潜在的なウイルス作成ツールにもなります。この記事では、Golang 開発におけるセキュリティ問題を詳しく掘り下げ、G を回避する方法をいくつか紹介します。

Mac で Golang を使用してプログラミングする手順とヒント Mac で Golang を使用してプログラミングする手順とヒント Mar 03, 2024 am 08:30 AM

タイトル: Mac で Golang プログラミングを使用するための手順とテクニック 現在のソフトウェア開発分野では、効率的で簡潔で同時実行性の高いプログラミング言語として、Golang (Go とも呼ばれる) がますます多くの開発者の注目を集めています。 。 Mac プラットフォームで Golang をプログラミングする場合、いくつかのツールとテクニックを使用して開発効率を向上させることができます。この記事では、Mac で Golang プログラミングを使用する手順とテクニックを紹介し、読者がよりよく理解して応用できるように具体的なコード例を示します。ステップ 1: Gol をインストールする

ブロックチェーンの開発における Golang の影響と役割に関する研究 ブロックチェーンの開発における Golang の影響と役割に関する研究 Feb 26, 2024 pm 04:24 PM

プログラミング言語としての Golang (略して Go 言語) は、近年ブロックチェーン分野で徐々に登場しており、その効率的な同時処理機能と簡潔な構文機能により、ブロックチェーン開発で好まれています。この記事では、Golang がブロックチェーンの開発にどのように役立つかを検討し、具体的なコード例を通じてブロックチェーン アプリケーションにおける Golang の優位性を実証します。 1. ブロックチェーン分野における Golang の利点: 効率的な同時処理機能: ブロックチェーン システムのノードは同時に大量のトランザクションとデータを処理する必要があり、Gola

Golang 開発者はどのようなプログラミング言語を一般的に使用していますか? Golang 開発者はどのようなプログラミング言語を一般的に使用していますか? Mar 18, 2024 pm 09:06 PM

Golang は Google によって開発されたオープンソースのプログラミング言語で、バックエンド サービス開発、クラウド コンピューティング、ネットワーク プログラミングなどの分野で広く使用されています。 Golang は静的型付け言語として、効率的な同時実行モデルと強力な標準ライブラリを備えているため、開発者に好まれています。ただし、実際の開発では、Golang 開発者は通常、さまざまなシナリオのニーズを満たすために、プロジェクト開発のために他のプログラミング言語を組み合わせる必要があります。 PythonPython は、簡潔かつ明確で、学習が容易なオブジェクト指向プログラミング言語です。

Go Kit フレームワークは Golang API のパフォーマンス向上に役立ちます Go Kit フレームワークは Golang API のパフォーマンス向上に役立ちます May 07, 2024 pm 03:24 PM

Gokit は、最適化され、スケーラブルで、保守可能で、テストしやすい機能を通じて API パフォーマンスを向上させる Golang マイクロサービス フレームワークです。ユーザーがパフォーマンスと保守性の高い API を迅速に構築できるようにするさまざまなツールとパターンを提供します。実際の運用では、Netflix、Spotify、Uber などの大規模なプラットフォームの API 構築で広く使用されており、大量のリクエストを処理します。

Golangのスペース置換の実践テクニックを共有 Golangのスペース置換の実践テクニックを共有 Mar 13, 2024 am 09:15 AM

タイトル: Golang でスペースを置き換える実践的なテクニックの共有 インターネットの普及と発展に伴い、プログラムの設計と開発はますます重要になってきています。プログラミングプロセスにおいて、データ処理は非常に重要な部分です。テキスト データを処理するときに、スペースを置換する必要がある状況がよく発生します。この記事では、Golang でスペースを置換するテクノロジを実装する方法と、具体的なコード例を示します。なぜスペースを置換する必要があるのですか?スペースはテキスト データでよく使われる特殊文字の 1 つですが、場合によっては、スペースを他の文字に置き換えたり、スペースを削除したりする必要があります。

Golang を使用してモバイル ゲームを開発するメリットとデメリット Golang を使用してモバイル ゲームを開発するメリットとデメリット Mar 05, 2024 pm 03:51 PM

Golang を使用してモバイル ゲームを開発する利点と欠点 モバイル デバイスの人気とそのパフォーマンスの継続的な向上により、モバイル ゲーム市場の人気はますます高まり、参加する開発者がますます増えています。開発言語を選択する際、高速かつ効率的で習得しやすい言語として Golang が多くの開発者の注目を集めています。この記事では、Golang を使用してモバイル ゲームを開発することの長所と短所について説明し、具体的なコード例を通して説明します。利点: 強力なクロスプラットフォーム: Golang はさまざまなプラットフォーム用のバイナリにコンパイル可能

See all articles