2016-05-20 71 views
0

最近我讀到一篇http://glide.readthedocs.io/en/latest/vendor/,也有一些建議,其中之一是:開發golang庫時,我們是否應該將自己的軟件包放在供應商/文件夾中?

庫(代碼庫沒有main包)不應外面包存儲在他們的VCS一個vendor/文件夾,除非他們有一個特定的理由和理解他們爲什麼這樣做。

我的問題是:

根據這一建議,我們應始終把我們自己的包(不是那些第三方軟件包)的vendor/文件夾開發golang庫時?

回答

1

「外包裝」是指生活在本回購之外的包裝。所以,如果這些軟件包與導入它們的代碼分開存放:是的,供應它們。

如果你只是想編寫和使用多個軟件包,同時實現您的庫:沒有,把它們放在子文件夾以外的供應商/庫回購

例如

... ▸ server/ server.go "package server" ▸ store/ ▸ testutils/ ▾ vendor/ ▸ bitbucket.org/ ▸ github.com/ ...

+1

雖然你的回答並不是我的問題的直接答案,但你澄清了什麼'外面pakcages'這讓我感到困惑。謝謝! https://github.com/mattfarina/golang-broken-vendor讓我明白爲什麼圖書館不應該把第三方包放到'vendor /'目錄。 – BruceAuyeung

+0

像glide這樣的供應商軟件包管理器如何在開發庫時將它們放入庫的代碼庫目錄結構中來管理第三方軟件包? – BruceAuyeung

+0

@BruceAuyeung我只使用了'godep',其中:您運行'go get foo/package1 bar/package2 ...'將軟件包安裝到您的gopath中,然後運行'godep restore && godep save。/ ...'將包裹從gopath複製到'/vendor /'。我期望隨着滑翔,你同樣不需要手動將任何東西放在供應商文件夾中。 – Plato

1

不,在供應商/目錄中添加自己的軟件包是沒有意義的,因爲供應商目錄是用於項目外部的代碼。

這個建議的意思是:如果你正在開發一個庫,除非你知道你在做什麼以及爲什麼要這麼做,否則不要使用供應商/存儲第三方庫。

相關問題