符号链接到 GOPATH 文件夹是常见的做法吗?

我的 git 项目存储在这里:

~/dev/git/project1 ...

我正在启动一个 golang 项目,因为它需要使用 GOPATH,所以从我的项目 git 路径到 GOPATH 创建符号链接是一种常见的做法吗?


眼眸繁星
浏览 241回答 2
2回答

Qyouu

由于包之间的依赖问题,GOPATH 使用了符号链接。然而,GOPATH的结构总是建议它用于多个项目,并且GOPATHgo 开发人员不鼓励使用符号链接。然而,在最新版本 (1.6) 中,他们最终确定了依赖问题的解决方案(在 1.5 中实验性引入),形式为vendor/放置在包顶层的文件夹(链接)。此文件夹将在GOPATHimport 语句使用的常规包之前搜索。有多种工具可用于简化依赖过程,例如godep或glide,使得使用vendor/文件夹比符号链接GOPATH. 使用供应商包也比符号链接依赖项具有更好的可重现性,确保您的包适合所有人。所以我鼓励你不要符号链接你的 GOPATH,并使用这个新引入的标准。

ITMISS

我最终做的是GOPATH在一个 go 项目中创建我自己的项目,我想与我的正常 global 保持隔离$GOPATH。我制作了一个 ' b' 脚本(在项目的根文件夹中),它:检查是否src存在(在项目文件夹中,在此处~/dev/git/project1):如果不存在,则创建它;检查 src/mypackage 是否存在:如果不存在,则创建符号链接src/mypackage -> ~/dev/git/project1。用别名调用: alias b='. ./b'这样,相同的 ' b'('build' 的缩写)进入~/dev/git/project1/src/mypackage,并执行go install.如果您有一个main包,它将在~/dev/git/project1/bin.这样,我的每个 go 项目都保持自主,不会在我的正常$GOPATH/src. 我$GOPATH为帮助我在 go: 中开发的全球项目保留了 global golang.org/x/tools/cmd/...,github.com/fzipp/gocyclo以及类似的(其他短绒)。换句话说,我没有符号链接GOPATH。我将我的项目中的包符号链接到本地GOPATH(所述项目的本地),但 GOPATH 本身是一个固定文件夹(再次特定于我的项目),像往常一样定义,没有任何符号链接)这与用于供应源依赖项的供应商文件夹完全兼容。alias b='. ./b'cd /path/to/my/projectb:#!/bin/shif [ ! -e src ]; then mkdir src ; fiif [ ! -e src/myproject ]; then ln -s /path/to/my/project src/myproject; ficd src/myprojectgo installcd ../..
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go