2013-09-05 52 views
1

在Go中,工作區包含src,pkg和bin目錄。如何在工作區中創建多個項目,每個項目都有自己的src,pkg,bin目錄,這樣我就可以將軟件包放到特定項目的pkg目錄中。go在工作區中使用多個項目

+0

正如@jnml指出的那樣,文檔定義工作區的方式令人困惑。我更喜歡把src目錄當作工作區。這完美地回答了我的問題:http://stackoverflow.com/a/9986574/1375688 – tldr

回答

1

你可能不需要那個。我們也忘了「工作區」這個詞,它可能只會讓你感到困惑。

如果您設置了GOPATH環境變量,那麼您實際上需要讓多個項目獨立坐在您的硬盤上。

例如,具有export GOPATH="$HOME",並進行

$ go get github.com/foo/bar 
$ go get github.com/baz/qux 

你的目錄樹會

$GOPATH/pkg... 
     compiled packages 
$GOPATH/src/github.com/foo/bar 
     bar.go 
$GOPATH/src/github.com/baz/qux 
     qux.go 

更多細節here。請注意,它確實談論工作區,但我仍然認爲這一事實非常不幸。該文檔的早期版本沒有使用也沒有定義該概念,並且它們非常有用。這是IMO的一個證明(工作空間)是多餘的。

+0

所以我可以在任何文件中導入「$ GOPATH/src/github.com/foo/bar」? – tldr

+0

@tldr:從導入語句中刪除'$ GOPATH/src /'部分,你很好去;-) – zzzz

+0

但是,它會從github回購中的主分支中獲取它。如果我想使用我從'go get'獲得的版本怎麼辦? – tldr

0

如果您確實需要幾個「工作空間」:在GOPATH中有幾個條目(在unix上用「:」分隔)。 (但大多數情況下,一切都在一個GOPATH下)。

請記住,go get將包只有取回到您的第一個GOPATH條目。

其他條目可以用作「獨立工作區」。

相關問題