La définition de la variable GOPATH
global en tant que variable d'environnement fonctionne correctement avec Visual Studio Code.
Mais définir une variable spécifique à un projet globalement ne me semble pas très gentil. Considérez que vous avez plusieurs projets Go
, vous devrez modifier cette variable chaque fois que vous compilez, déboguez, etc., un projet.
Est-il possible de définir la variable GOPATH
en tant que variable de projet dans Visual Studio Code? Ether dans settings.json
ou launch.json
?
Go 1.5 a ajouté le répertoire des fournisseurs permettant une gestion des dépendances par projet.
S'il existe un répertoire source d/vendor, alors, lors de la compilation d'un fichier source dans le sous-arbre racine de la racine d, l'importation "p" est interprétée comme une importation "d/vendor/p" si ce chemin désigne un répertoire contenant au moins un fichier. avec un nom se terminant par “.go”.
Cette fonctionnalité a été activée par défaut avec Go 1.6:
Go 1.5 a introduit la prise en charge expérimentale d'un répertoire «fournisseur» activé par une variable d'environnement. En Go 1.6, la fonctionnalité est maintenant activée par défaut.
Même avec la version 1.6, selon les outils que vous utilisez, vous devrez peut-être définir la variable d’environnement GO15VENDOREXPERIMENT
sur 1
(export GO15VENDOREXPERIMENT=1
sur un système d’exploitation sous Unix).
(T2 2018: Notez qu'avec le projet vgo , GOPATH
pourrait finir par être obsolète au profit d'un flux de travail basé sur un projet. Cela éviterait la GOPATH
manuelle que je proposais ci-dessous, il y a deux ans. )
Avec Go 1.11 (août 2018), GOPATH
peut être facultatif, avec modules .
Il est de plus en plus supporté avec VSCode:
En plus du dossier du fournisseur, vous pouvez toujours avoir une GOPATH
par projet.
Voir " GOPATH
from go.inferGopath
setting ":
GOPATH
fromgo.inferGopath
settingLe réglage de
go.inferGopath
remplace tout ce qui précède.
Sigo.inferGopath
est défini surtrue
, l'extension essaiera d'inférer laGOPATH
à partir du chemin d'accès à l'espace de travail, c'est-à-dire le répertoire ouvert dans vscode. Il recherche le répertoiresrc
dans le chemin d'accès et placeGOPATH
à un niveau supérieur.Par exemple, si votre projet ressemble à
/aaa/bbb/ccc/src/...
, alors ouvrir le répertoire/aaa/bbb/ccc/src
(ou tout ce qui se trouve en dessous) fera rechercher l'extension vers le haut, rechercher le composantsrc
dans le chemin et définir laGOPATH
à un niveau supérieur à celui-ci ___GOPATH=/aaa/bbb/ccc
.Ce paramètre est utile lorsque vous travaillez sur différents projets Go ayant différents
GOPATH
s. Au lieu de définirGOPATH
dans les paramètres d'espace de travail de chaque projet ou de définir tous les chemins d'accès comme chaîne séparée par;/:
, vous pouvez simplement définirgo.inferGopath
surtrue
et l'extension utilise automatiquement la droiteGOPATH
.
GOPATH
pour l'installation des outils Go à l'aide dego.toolsGopath
Par défaut, tous les outils Go dépendants sont utilisés à partir de la
GOPATH
dérivée de la logique ci-dessus.
S'ils sont disponibles sur votrePATH
, laPATH
est utilisée pour localiser les outils Go.
Si les outils Go ne se trouvent pas sur votre chemin, vous pouvez vous retrouver avec les mêmes outils Go installés dans chacun de vosGOPATH
s.
Pour éviter que les outils Go n'encombrent votreGOPATH
, utilisez le paramètrego.toolsGopath
pour fournir un emplacement séparé pour les outils Go.La première fois que vous définissez go.toolsGopath, vous devrez exécuter la commande
Go: Install Tools
pour que les outils Go soient installés à l'emplacement fourni.
GOPATH est votre espace de travail et il est divisé en
GOPATH/
|- bin/
|- pkg/
|- src/ <--- your projects are saved here
|- .../my_project1
|- .../my_project2
Avec cette séparation, vous n'avez pas besoin de définir un nouveau GOPATH pour chaque projet. Je vous recommande de lire Comment écrire un code Go
set workspace settings
, dans Windows:
ctrl+,
définir les paramètres de l'espace de travail:
{
"go.gopath": "d:\\gopath;E:\\src"
}
utiliser ;
pour plusieurs chemins