将GOPATH
变量global 设置为环境变量可以正常使用Visual Studio Code.
但是在全球范围内设置项目特定变量对我来说似乎并不是很好.考虑到你有多个Go
项目,每次你需要更改这个变量,编译,调试......等项目.
是否有可能GOPATH
在Visual Studio Code 中将变量设置为项目变量?醚settings.json
还是launch.json
?
(2018年第二季度:请注意,对于vgo项目,GOPATH
最终可能会弃用以支持基于项目的工作流程.这将避免GOPATH
我在两年前提出的基于项目的手动建议)
使用Go 1.11(2018年8月),GOPATH
可以选配模块.
VSCode越来越支持它:
vscode-go/issue 1532
" 在Visual Studio代码中转到模块支持 "
除了vendor文件夹之外,GOPATH
每个项目仍然可以有一个.
请参见" GOPATH
来自go.inferGopath
设置 ":
GOPATH
从go.inferGopath
设置设置
go.inferGopath
会覆盖以上所有内容.
如果go.inferGopath
设置为true
,则扩展将尝试推断GOPATH
工作空间的路径,即在vscode中打开的目录.它在src
目录的路径中向上搜索,并设置GOPATH
为高于该目录的一个级别.例如,如果您的项目看起来像
/aaa/bbb/ccc/src/...
,那么打开目录/aaa/bbb/ccc/src
(或其下面的任何内容)将导致扩展程序向上搜索,src
在路径中找到组件,并将其设置为GOPATH
高于该级别的一个级别,即GOPATH=/aaa/bbb/ccc
.当您处理具有不同
GOPATH
s的不同Go项目时,此设置很有用.您可以设置为并且扩展名自动使用右侧,而不是GOPATH
在每个项目的工作区设置中设置或将所有路径设置为;/:
分隔的字符串.go.inferGopath
true
GOPATH
GOPATH
用于安装Go工具go.toolsGopath
默认情况下,所有依赖的Go工具都是
GOPATH
从上面的逻辑派生出来的.
如果它们可用PATH
,PATH
则用于定位Go工具.
如果Go工具不在您的路径中,您最终可能会在每个工具中安装相同的Go工具GOPATH
.
要防止Go工具混乱GOPATH
,请使用该go.toolsGopath
设置为Go工具提供单独的位置.第一次设置go.toolsGopath时,您必须运行
Go: Install Tools
命令,以便Go工具安装在提供的位置.
GOPATH是您的工作区,分为
GOPATH/ |- bin/ |- pkg/ |- src/ <--- your projects are saved here |- .../my_project1 |- .../my_project2
通过这种分离,您无需为每个项目设置新的GOPATH。我建议您阅读如何编写Go代码