ホームページ >バックエンド開発 >Golang >Go 1.11 モジュール内のローカル パッケージにアクセスするにはどうすればよいですか?

Go 1.11 モジュール内のローカル パッケージにアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-26 03:56:17333ブラウズ

How Can I Access Local Packages Within My Go 1.11 Modules?

Go 1.11 モジュール内のローカル パッケージへのアクセス

問題ステートメント

以下で説明するものと同様のプロジェクト構造を持つ Go モジュール内のローカル パッケージ、コンパイル「モジュールが見つかりません」エラーで失敗します。

/
  - /platform
      - platform.go
  - main.go
  - go.mod

解決策

Go モジュール内のローカル パッケージにアクセスするには、プロジェクトの go.mod を変更する必要があります。ファイルを作成し、replace ディレクティブを使用します。このディレクティブを使用すると、リモート リポジトリで使用できないパッケージのローカル パスを指定できます。

問題を解決する手順

  1. モジュールを定義します:

    • 提供されている例では、メイン プロジェクトのモジュールは github.com/userName/mainModule.
    • プラットフォーム パッケージのモジュールは github.com/userName/otherModule.
  2. go.mod を変更するファイル:

    • 次の行を go.mod ファイルに追加します:

      module github.com/userName/mainModule
      
      require "github.com/userName/otherModule" v0.0.0
      replace "github.com/userName/otherModule" v0.0.0 => "local physical path to the otherModule"
    • otherModule へのローカル物理パスを絶対パスに置き換えます。 otherModule のルート ディレクトリへのパス
  3. パッケージをインポートします:

    • main.go で、目的のパッケージを次からインポートします。 otherModule:

      import "github.com/userName/otherModule/platform"

追加情報

    replace ディレクティブを使用すると、リモートの依存関係を置き換えることができます。同じバージョンであってもローカル パスを使用するnumber.
  • モジュールはパッケージのコレクションです。 Go 11 では、モジュールを使用して依存関係とバージョンを管理できます。
  • Go モジュールの包括的な概要については、公式ドキュメントを参照してください。

以上がGo 1.11 モジュール内のローカル パッケージにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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