大多数 golang 工具(如 golint、gopkgs 等)都像库一样安装,go get例如,go get -v github.com/golang/lint/golint或go get -v github.com/tpng/gopkgs. 我想知道为什么这些不仅仅是运行源代码的二进制文件,例如go fmt?
由于我同时处理多个 Go 项目,因此我更喜欢对不同GOPATH的项目使用不同的工具,因此我必须将这些工具安装到每个项目中,以便我可以检查或自动完成。
我是否做错了什么,或者有没有办法在全球范围内安装这些工具,然后在多个项目中使用它们?处理多个项目的人们如何管理这个?
编辑:
我不是在询问库的供应或同时使用不同版本的 Go 的项目。我的问题是必须将 lint 和 gopkgs 这样的工具安装到每个 GOPATH 中,为什么它们被设计为像库一样对待,而不是作为全局二进制文件提供,go fmt然后可以在多个项目中使用,就像我们使用go fmt
所以我必须将这些工具安装到每个项目中,以便我可以检查或自动完成。
不,您不会:了解 Visual Studio Code 如何通过其Microsoftvscode-go插件实现这一点(自 2017 年 1 月的 0.6.53 版本起)。
新设置
go.toolsGopath,用于提供备用位置来安装扩展所依赖的所有 Go 工具(如果您不希望它们弄乱您的GOPATH.
参见PR 351和PR 737
安装在该通用 `` 文件夹中的工具包括:
'gocode': 'github.com/nsf/gocode',
'gopkgs': 'github.com/tpng/gopkgs',
'go-outline': 'github.com/ramya-rao-a/go-outline',
'go-symbols': 'github.com/acroca/go-symbols',
'guru': 'golang.org/x/tools/cmd/guru',
'gorename': 'golang.org/x/tools/cmd/gorename',
'gomodifytags': 'github.com/fatih/gomodifytags',
'impl': 'github.com/josharian/impl'
Run Code Online (Sandbox Code Playgroud)
(还有其他一些,围绕godoc、goimports或goreturns、dlv、 ...),
这意味着您的GOPATH组成包括:
go.toolsGopath专用于所有项目使用的工具的全局工作区文件夹。这些工具在后一个工作区的子文件夹bin/您也可以手动执行此操作(无需 Visual Studio Code):GOPATH只要您想要安装/更新工具,只需设置为该全局工具文件夹即可。
然后重置GOPATH为my/project/dedicated/workspace;/tools/workspace,并将两个子bin/文件夹添加到您的$PATH/ %PATH%。
这些工具可以编译为二进制文件,如果这些二进制文件在大多数编辑器中可用
$PATH,据我测试(基于您的帖子),vscode 和atom(go-plus)都可以工作并且不会go get再次使用。如果将它们视为库,则更新会更容易。(我是说
go get)
| 归档时间: |
|
| 查看次数: |
19195 次 |
| 最近记录: |