GB(一)

0zaki1sc發表於2019-02-16

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/下的程式碼


相關文章