gb依赖管理

一个Golang项目工程通常由bin、pkg、src三个子目录构成,gb在这个概念的基础上新增了一个vendor目录来存放项目依赖的第三方包;一个gb项目的工作目录里包含该项目需要的所有Go代码。

gb项目不放在你的$GOPATH中,也不需要为你的gb项目设置或修改$GOPATH。依赖的第三包需要放到vendor/src目录中,并使用gb来编译和测试你的项目。

安装gb

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

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

go get github.com/constabulary/gb/...

安装gb后,会有gb和gb-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 build和gb vendor,实际上,build是我们之前所说的可执行文件$GOPATH/bin/gb包含的,而vendor是gb的一个插件,最终调用的是可执行文件$GOPATH/bin/gb-vendor。

可以通过gb help命令查看gb支持的更多命令,命令的具体用法可以通过gb help $command_name查看,很多gb命令都是在go命令行工具的基础上做的包装,用法也都相似,通过gb vendor help可以查看vendor插件具体用法,这里我们简单列举如下:

gb 命令列表

命令功能

build编译包

doc显示文档

env打印项目的环境变量

generate处理源代码生成Go文件

info显示项目的信息

list显示项目下的所有包

test执行测试

gb vendor 功能列表

参数功能

fetch获取一个远程依赖

update更新一个本地依赖

list每行一个列出所有依赖

delete删除一个本地依赖

purge清除所有未引用的依赖

restore从manifest清单文件还原依赖

原文链接:http://tabalt.net/blog/golang-package-dependency-management-tool-gb/

本博文章如无说明均为原创,转载时请注明以上链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • jHipster - 微服务搭建 CC_简书[https://www.jianshu.com/u/be0d56c4...
    quanjj阅读 846评论 0 2
  • FABRIC-JAVA-SDK 一直没有人提及,我来吃螃蟹啦! # 环境检查 除了之前文章所述的一切,还要 - 安...
    kunpeng512阅读 5,087评论 0 0
  • 初始化配置 C代码 收藏代码 配置使用git仓库的人员姓名 git config --global user.n...
    Yepku阅读 142评论 0 0
  • 想必每个人小时候都干过一两件淘气的事情吧!尤其向我这样小时候出了名的捣蛋鬼,总惹祸事。招来娘拿着笤帚疙瘩,满院子追...
    粉色的桃林阅读 733评论 29 33
  • 一、知识付费到底为了什么? 小道消息一文“总觉得健身请教练是个挺傻的事儿”说的很好,知识付费为认知差异提供了一个通...
    长大_ce6a阅读 223评论 0 0