有了ruby,现在无论写什么都想找跟ruby对应的工具,其中包管理器就是这样的.
ruby中有bundle 简单,强大,使用方便.
go在官方推荐了(https://github.com/golang/go/wiki/PackageManagementTools)
依次点开之后,要么就是太复杂,要么就是用json配置,要么就是好久不更新了,最终权衡下来发现只有gom还比较符合bundle的习惯,又比较简单.于是开始用之.
首先我设置了
export GOPATH=$HOME/.golang
export PATH="$PATH:$GOPATH/bin
然后进入了我习惯放置代码的目录
cd $HOME/project/golang_project
给予测试优先,我要先找一个好用的测试库,于是找到了跟ruby社区最接近的(https://github.com/onsi/ginkgo)
编写了 Gomfile文件(Gemfile...一切都是那么熟悉)
gom 'github.com/onsi/ginkgo/ginkgo'
gom 'github.com/onsi/gomega'
然后随便编写了一个main程序 (main.go)
package main
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"testing"
)
func main(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "TestGo Suite")
}
开心的运行
gom install
到此一切顺利,本来以为一切就是这么开心,没想到麻烦之处才刚刚开始
gom run main.go
就是无论如何也找不到前面gomfile依赖的包, 不过go还是很贴心的打出了寻找的路径,发现他说的错误是找不到 vendor/src/github.com/onsi/ginkgo/ginkgo 但是打开 vendor发现就是少了src这一层目录很奇怪,于是开始google,开始各种查,大家的文章都是写的 vendor目录到了1.7.3已经是默认支持的了,但是为什么就是不行呢.
很奇怪! 很奇怪!
来来回回一下午,中间还尝试的更换了各种包管理器程序最后都是不行.
最后无意间看到一篇文章 说要支持vendor,代码的目录必须在gopath src目录下,于是赶紧修改。
成功了.
但是内心却不快乐,为什么我的代码要和我安装的库放在一起,真的是tm的扯淡。
golang没有一个好的包管理器,真的很难再强大了。
推荐一下自己的项目