binpkgsrcvendor
vendor/src

安装gb

gb的官网是:http://getgb.io/,github地址是:https://github.com/constabulary/gb/。

使用如下命令即可安装gb:

go get github.com/constabulary/gb/...
gbgb-vendor$GOPATH/bin~/.bash_profile$GOPATH/bin$PATH
export PATH=$PATH:$GOPATH/bin

使用gb进行项目开发

我们以一个简单的提供HTTP页面的“Hello World”程序来学习一下gb的使用。为了体现gb管理第三方包依赖的特性,我们引入一个支持HTTP服务优雅重启的第三方包 github.com/tabalt/gracehttp。

创建gb项目目录结构:

cd ~/helloworld
mkdir -p src/helloworld
mkdir -p vendor/src

编写“Hello World”程序

#vim src/helloworld/main.go
package main

import (
    "fmt"
    "net/http"

    "github.com/tabalt/gracehttp"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "hello world")
    })

    err := gracehttp.ListenAndServe(":8080", nil)
    if err != nil {
        fmt.Println(err)
    }
}

添加依赖的第三包

gb vendor fetch github.com/tabalt/gracehttp

目前为止整个项目目录结构如下:

./
|-- src
|   `-- helloworld
|       `-- main.go
`-- vendor
    |-- manifest
    `-- src
        `-- github.com
            `-- tabalt
                `-- gracehttp
                    |-- README.md
                    |-- connection.go
                    |-- gracehttpdemo
                    |   `-- main.go
                    |-- listener.go
                    `-- server.go

编译执行程序

gb build helloworld
./bin/helloworld
curl http://127.0.0.1:8080/
hello world

提交所有代码到git仓库

git init
git add .
git commit -am 'init hello world project with gb'
git add remote -v $your_remote_git_repository
git push origin master:master

gb常用命令

gb buildgb vendorbuild$GOPATH/bin/gb$GOPATH/bin/gb-vendor
gb helpgb help $command_namegb vendor help

gb 命令列表

命令 功能
build 编译包
doc 显示文档
env 打印项目的环境变量
generate 处理源代码生成Go文件
info 显示项目的信息
list 显示项目下的所有包
test 执行测试

gb vendor 功能列表

参数 功能
fetch 获取一个远程依赖
update 更新一个本地依赖
list 每行一个列出所有依赖
delete 删除一个本地依赖
purge 清除所有未引用的依赖
restore 从manifest清单文件还原依赖

打赏作者