Goモジュール内のローカルパッケージにアクセスする(Go 1.11)質問する

Goモジュール内のローカルパッケージにアクセスする(Go 1.11)質問する

Go の新しいモジュール システムを試していますが、ローカル パッケージにアクセスできません。次のプロジェクトは、gopath 外のデスクトップ上のフォルダーにあります。

私のプロジェクト構造は次のようになります。

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

// platform.go
package platform

import "fmt"

func Print() {
    fmt.Println("Hi")
}

// main.go
package main

import "platform"

func main() {
    platform.Print()
}

go build main.go私に言う

cannot find module for path platform

ベストアンサー1

まずこれを定義しましょう。これmodulesはのコレクションですpackages。Go 11では、移動モジュール次のようにします。

両方のパッケージが同じプロジェクト内にある場合は、次のように実行できますgo.mod

module github.com/userName/moduleName

そしてあなたの中にmain.go

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

packagesただし、それらが別々のモジュール、つまり異なる物理パスであり、たとえばこれをリモートで github に公開せずにローカルにインポートしたい場合は、replaceディレクティブを使用してこれを実現できます。

モジュール名が でgithub.com/otherModuleplatformと指定されている場合、その中には が唯一のパッケージです。メイン モジュールに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"

注: パスはモジュールのルート ディレクトリを指す必要があり、絶対パスでも相対パスでもかまいません。

内でmain.go、 のような特定のパッケージをインポートするには、platform次のようにしますotherModule

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

こちらは優しい紹介Golangモジュールへ

おすすめ記事