通常的做法是GOPATH文件夹的符号链接?

coo*_*eze 6 git go

我的git项目存储在这里:

~/dev/git/project1 ...
Run Code Online (Sandbox Code Playgroud)

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

Von*_*onC 1

我最终做的是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. 我为全局项目保留了全局,这些项目可以帮助我在 go:等$GOPATH中进行开发(其他 linter)。golang.org/x/tools/cmd/...github.com/fzipp/gocyclo


换句话说,我不进行符号链接GOPATH
我确实将项目内的包符号链接到本地GOPATH​​(该项目的本地),但 GOPATH 本身是一个固定文件夹(再次特定于我的项目),像往常一样定义,没有任何符号链接)

这与供应商源依赖项的供应商文件夹完全兼容。


alias b='. ./b'
cd /path/to/my/project
b:

#!/bin/sh
if [ ! -e src ]; then mkdir src ; fi
if [ ! -e src/myproject ]; then ln -s /path/to/my/project src/myproject; fi
cd src/myproject
go install
cd ../..
Run Code Online (Sandbox Code Playgroud)