web-dev-qa-db-ja.com

golangの予期しないディレクトリレイアウト

だから私はgithub.com/minio/minioからminioをダウンロードしました

ソースから実行したい

私は私のようなディレクトリを作成します:

~/Downloads/minio-RELEASE.2017-06-13T19-01-01Z
|
 src
   |
    all minio directories, including vendor, like the image below

enter image description here

また、godepを使用して、GOPATHの下の他の依存関係を解決します。

Gogland(go IDE)から実行します

それが示している:

GOROOT=/usr/local/Cellar/go/1.8.3/libexec
GOPATH=/Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z:/Users/xl/go
/usr/local/Cellar/go/1.8.3/libexec/bin/go build -i -o /private/var/folders/8v/6dg7d6mx2850sv1gp8ts9thm0000gn/T/go_run_main_gogo /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src/main.go
unexpected directory layout:
    import path: github.com/Azure/azure-sdk-for-go/storage
    root: /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src
    dir: /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src/vendor/github.com/Azure/azure-sdk-for-go/storage
    expand root: /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src
    expand dir: /Users/xl/Downloads/minio-RELEASE.2017-06-13T19-01-01Z/src/vendor/github.com/Azure/azure-sdk-for-go/storage
    separator: /

今私は混乱しています、何が問題なのですか?ファイルはすべてそこにあり、ディレクトリは印刷されているものと同じです。どうすれば修正できますか?ありがとう。

7
Wingzero

GitHubコードレイアウト を参照

$GOPATHはプロジェクトのルートです。各Githubリポジトリは$GOPATHの下のいくつかのフォルダーからチェックアウトされます。
How to Write Go Code で説明されているように、$GOPATH変数はGoワークスペースのルートを指します。

あなたの場合、GOPATHフォルダの下に、

src/github.com/minio/minio

Anfのみ、次に「ベンダーを含むすべてのminioディレクトリ」

7
VonC

Golang 1.13では、1.11から1.13にアップグレードした後、すべてのコードで突然起こりました。

Golang 1.13は "./something"のようなインポートをもう好きではないようです。

「myapp/something」のようなインポートを開発する必要がありました

15

これは、gorootとgopathの下にレポジトリが重複している場合に発生する可能性があります。 gorootを削除します。

5
Sentinel

また、go1.13(go to go modを使用)では、プロジェクトを$ GOPATHの下から移動した場合、import "./mypackage"ステートメントを使用できます。 $ GOPATHの下の同じプロジェクトは、上記のOPによって与えられたエラーでビルドされません。 $ GOPATH環境変数をあきらめる準備はまだできていませんが、必要に応じてgo.modファイルにコミットすることなく、可能な場合は小さなパッケージをプロジェクトのローカルに置いておきます。

0
WeakPointer