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 all
hello
% bin/hello
Hello gb
% tree $PROJECT
/home/dfc/code/demo-project
├── bin
└── hello
└── src
└── hello
└── hello.go
2.6 版本控制
注意:一般不提交$PROJECT/pkg
和$PROJECT/bin
下的內容,只提交$PROJECT/src/
下的程式碼