[英]Go - Do I have one workspace for all projects, or one workspace per project?
使用Go
如何組織項目? 我對工作區部分感到有點困惑。 我已經閱讀了以下內容: https : //golang.org/doc/code.html#Workspaces ...這部分讓我失望了:
典型的工作空間包含許多包含許多包和命令的源存儲庫。 大多數Go程序員將他們所有的Go源代碼和依賴項保存在一個工作區中。
這是否意味着我創建的每個項目都是一個單獨的工作區? 例如,如果兩個項目使用相同的包,我將在我的計算機上有兩個該包的副本。
或者,這是否意味着您有一個主工作區,您的項目共享這些包?
有點困惑。
我個人希望每個項目都有不同的GOPATH。 如果您可以使用工具自動化該過程,則可以使用vg來管理項目的不同GOPATH。
整潔的一點是它與大多數shell集成並在你cd
它們時自動檢測項目。
到目前為止,當我想使用不同版本的Go或者我想將我的私人作品與孩子和我喜歡的代碼分開時,我使用不同的工作區。 此外,如果我想玩一些開源代碼,但想要一個簡單的方法來清理它。
就像是
mk /tmp/tmpgo
cd /tmp/tmpgo
# Copy or edit a setenv file
. setenv # I use bash
setenv文件看起來像這樣。
export GOROOT=$HOME/go16
export GOPATH=$PWD
export GOBIN=$GOPATH/bin
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
export PS1='\[\033[01;32m\]workspacenamehere\[\033[01;33m\] \W\[\033[00m\] '
這給了我一個go工作區,它有自己的bin,src,pkg子目錄。 我可以得到任何我想要的東西。 如果我願意,我可以刪除整個臨時目錄。 從像github.com這樣的存儲庫中獲取東西的趨勢是從其他貢獻者那里獲得許多包,但是因為它將它們全部放入一個干凈的src子目錄中,所以很容易使用find並查看已被刪除的內容。 后來再次從高清中刪除所有內容變得更加容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.