這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
gb go語言基於項目的編譯工具
1. 安裝
1.1 約束
gb 依賴Go1.4以上版本
1.2 安裝
通過以下命令安裝
go get github.com/constabulary/gb...
1.3 升級
gb 依然處於開發狀態,通過以下命令升級到最新版本
go get -u github.com/constabulary/gb/...
1.4 多版本go的情況
對每一個go版本都安裝gb
1.5 注意
安裝完畢後的gb命令和oh-my-zsh配置的 git branch
簡寫命令有衝突,採用 ~/.zshrc中
unalias gb
來屏蔽
2. 項目
gb基於項目。一個gb工程為一個編譯單元,每個gb工程目錄含有一個src/
子目錄,沒有設定檔的設定,以下文檔我們統稱工程的目錄為$PROJECT
2.1 自己的代碼,第三方的代碼
gb項目區分自己的代碼和依賴的第三方代碼。gb項目內,自己的代碼放在
$PROJECT/src/
第三方代碼放在
$PROJECT/vendor/src/
2.2 項目不在$GOPATH下進行配置
gb項目不會跟$GOPATH
有關係,
gb也不會採用go get
來下載管理依賴;依賴的第三方庫代碼都應放在$PROJECT/vendor/src/
目錄下
gb項目也可以用go get
來擷取,但不能由go tools
工具來構建,因為gb項目不遵循go get
的約定
2.3 建立項目
建立一個gb項目也就是建立一個普通的檔案目錄:
% mkdir -p $HOME/code/demo-project
這個目錄將作為gb項目的根目錄,現在建立src/
子目錄來存放你自己的項目代碼:
% mkdir -p $PROJECT/src% tree $PROJECT/home/dfc/code/demo-project└── src
2.4 建立包
注意: gb不會編譯$PROJECT/src/
下的代碼,也不會編譯根目錄下的代碼,你必須將代碼放在一個package內,讓我們來建立一個包:
% mkdir -p $PROJECT/src/hello% tree $PROJECT/home/dfc/code/demo-project└── src └── hello └── hello.go
我們看一下hello.go檔案:
package main import "fmt" func main() { fmt.Println("Hello gb")}
2.5 編譯
注意:採用gb自己的編譯命令:
% gb build allhello% bin/helloHello gb% tree $PROJECT/home/dfc/code/demo-project├── bin └── hello└── src └── hello └── hello.go
2.6 版本控制
注意:一般不提交$PROJECT/pkg
和$PROJECT/bin
下的內容,只提交$PROJECT/src/
下的代碼