奇怪的Go Vendor

有了ruby,現(xiàn)在無(wú)論寫什么都想找跟ruby對(duì)應(yīng)的工具,其中包管理器就是這樣的.

ruby中有bundle 簡(jiǎn)單,強(qiáng)大,使用方便.

go在官方推薦了(https://github.com/golang/go/wiki/PackageManagementTools)

包管理器

依次點(diǎn)開(kāi)之后,要么就是太復(fù)雜,要么就是用json配置,要么就是好久不更新了,最終權(quán)衡下來(lái)發(fā)現(xiàn)只有g(shù)om還比較符合bundle的習(xí)慣,又比較簡(jiǎn)單.于是開(kāi)始用之.

首先我設(shè)置了

export GOPATH=$HOME/.golang
export PATH="$PATH:$GOPATH/bin

然后進(jìn)入了我習(xí)慣放置代碼的目錄

cd $HOME/project/golang_project

給予測(cè)試優(yōu)先,我要先找一個(gè)好用的測(cè)試庫(kù),于是找到了跟ruby社區(qū)最接近的(https://github.com/onsi/ginkgo)

ginkgo

編寫了 Gomfile文件(Gemfile...一切都是那么熟悉)

gom 'github.com/onsi/ginkgo/ginkgo'
gom 'github.com/onsi/gomega'

然后隨便編寫了一個(gè)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")
}

開(kāi)心的運(yùn)行

gom install

到此一切順利,本來(lái)以為一切就是這么開(kāi)心,沒(méi)想到麻煩之處才剛剛開(kāi)始

gom run main.go

就是無(wú)論如何也找不到前面gomfile依賴的包, 不過(guò)go還是很貼心的打出了尋找的路徑,發(fā)現(xiàn)他說(shuō)的錯(cuò)誤是找不到 vendor/src/github.com/onsi/ginkgo/ginkgo 但是打開(kāi) vendor發(fā)現(xiàn)就是少了src這一層目錄很奇怪,于是開(kāi)始google,開(kāi)始各種查,大家的文章都是寫的 vendor目錄到了1.7.3已經(jīng)是默認(rèn)支持的了,但是為什么就是不行呢.

很奇怪! 很奇怪!

來(lái)來(lái)回回一下午,中間還嘗試的更換了各種包管理器程序最后都是不行.

最后無(wú)意間看到一篇文章 說(shuō)要支持vendor,代碼的目錄必須在gopath src目錄下,于是趕緊修改。

成功了.

但是內(nèi)心卻不快樂(lè),為什么我的代碼要和我安裝的庫(kù)放在一起,真的是tm的扯淡。

golang沒(méi)有一個(gè)好的包管理器,真的很難再?gòu)?qiáng)大了。


推薦一下自己的項(xiàng)目

https://github.com/jimxl/rubygo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容