我的git项目存储在这里:
~/dev/git/project1 ...
Run Code Online (Sandbox Code Playgroud)
我正在开始一个golang项目,因为它需要使用GOPATH,所以通常的做法是从我的项目git路径到GOPATH创建一个符号链接?
我最终做的是GOPATH
在一个 go 项目中创建自己的项目,我想与正常的 global 保持隔离$GOPATH
。
我制作了一个“ b
”脚本(在项目的根文件夹中):
src
存在(在项目文件夹中,此处为~/dev/git/project1
):如果不存在,则创建它;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)