2014-04-10 40 views
6

我只是想確認我對Go項目中一個典型項目文件夾結構的理解,它遵循Go tool conventionsgo-lang項目文件夾結構約定

如果我正在編寫名爲my-package的軟件包,該軟件包使用另一個第三方外部軟件包 - other-package。然後基於約定,這個目錄結構是否正確?

我之所以閱讀文檔後再次問這個是因爲不像其他語言約定,用戶和第三方代碼在同一個頂層文件夾。

+0

密碼我的目錄結構:'''/go/src/github.com/github-account-name/project-name ''' –

+0

是的,只要根目錄是$ GOPATH –

回答

4

通過IRC#去堅果

用戶的機器將有一個共同的$GOPATH/src所有項目。這個$GOPATH/src可能有多個項目(用戶的,外部的軟件包等)。用戶只需將$GOPATH/src/mypackage提交到其src回購站。

如果你想爲你的src和第三方軟件包源有不同的目錄,那麼可以在$GOPATH的前面加上另一條路徑。 go get將下載第三方包到該路徑。 go-get將第三個包下載到它在由$GOPATH指定的路徑數組中找到的第一個路徑。

1

對於這個話題,Golang和其他語言是如此的不同,我可以說在我和Golang的日子裏很難理解這個話題。我建議你在$ GOPATH/src中擁有所有的工程,並且不要多一個$ GOPATH。

在GOLANG我們要適應它,就像SA http://golang.org/doc/code.html(代碼組織)

+0

就可以了,那麼導入對於你的定製軟件包來說如何?例如你在'/ src/project1'中有你的項目,並且一些幫助程序包在'/ src/project1/helper'下。你必須做'import'project1/myhelper「'?在我看來,如果'project1'關鍵字可以省略(如果這是我們在src'文件夾中的唯一項目,我們將刪除'project1'並移動所有其他文件和文件夾升級)。無論如何我們可以做到這一點(雖然仍然有多個項目)? – veich