J'ai donc téléchargé minio sur github.com/minio/minio
Je veux l'exécuter à partir de la source,
Je crée mon répertoire comme:
~/Downloads/minio-RELEASE.2017-06-13T19-01-01Z
|
src
|
all minio directories, including vendor, like the image below
J'utilise également godep
pour résoudre d'autres dépendances sous GOPATH.
Maintenant, je l'exécute à partir de Gogland (allez IDE)
Ça montre:
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: /
Maintenant, je suis confus, quel est le problème? Les fichiers sont tous là et les répertoires sont exactement comme ce qu'ils impriment. Comment je le répare? Merci.
Voir Disposition du code GitHub
$GOPATH
est la racine du projet - chacun de vos dépôts Github sera extrait plusieurs dossiers ci-dessous$GOPATH
.
Votre$GOPATH
la variable pointera vers la racine de votre espace de travail Go, comme décrit dans Comment écrire du code Go .
Dans votre cas, sous votre dossier GOPATH
, vous devriez avoir
src/github.com/minio/minio
Anf uniquement puis "tous les répertoires minio, y compris le fournisseur"
Sur Golang 1.13, il m'est soudainement arrivé sur tout mon code après la mise à niveau de 1.11 vers 1.13.
Il semble que golang 1.13 n'aime plus les importations comme "./something".
J'ai dû développer n'importe quelle importation comme "myapp/quelque chose"
Cela peut se produire si vous avez des dépôts en double sous goroot ET gopath. Supprimez le goroot.
Aussi avec go1.13 (avec le mod move to go), j'ai trouvé que si je déplaçais mon projet sous mon $ GOPATH, je pouvais utiliser l'instruction import "./mypackage". Le même projet sous $ GOPATH ne serait pas construit avec les erreurs données par l'OP ci-dessus. Je ne suis pas encore prêt à abandonner ma variable d'environnement $ GOPATH mais j'aime garder les petits packages locaux à leur projet lorsque cela est possible, sans m'engager dans un fichier go.mod quand ce n'est pas nécessaire.