Go语言的包管理

接触go语言之前写了一些nodejs的App,所以对于npm的包管理方式还是觉得挺方便的,但转移到go语言平台后,由于官方并未推出自己的包管理工具,所以只能借助于第三方的一些工具完成,本篇主要介绍一些目前使用的go的包依赖管理工具,用来协助程序的开发.

gpm

gpm工具使用来完成go依赖库下载的工具,非常的简单,只需要创建自己的一个Godeps文件,并把依赖的包写到文件中,这样我们就可以直接通过命令行来执行下载任务,并把依赖下载到当前的GOPATH路径中.
一个典型的Godeps文件中,我们可以不标记任何库依赖的版本信息,这样默认下载最新的依赖库,也可以通过标记下载指定的版本,只需要在依赖库的后面写上版本或者git的tag即可,如下所示:

$ cat Godeps
  # This is a comment
  github.com/nu7hatch/gotrail         v0.0.2
  github.com/replicon/fast-archiver   v1.02   #This is another comment!
  github.com/nu7hatch/gotrail         2eb79d1f03ab24bacbc32b15b75769880629a865

具体的安装gpm的方式,可以参考gpm官方的简易教程,mac下可以通过brew直接下载,下面的是linux操作系统下面的安装方式.

$ git clone https://github.com/pote/gpm.git && cd gpm
$ git checkout v1.4.0 # You can ignore this part if you want to install HEAD.
$ ./configure
$ make install

下面介绍一个使用gpm的简单实例,我们写了一个简单的go程序,并且包含了一个源代码main.go里面依赖了一个外部的go库,操作流程如下:

  export GOPATH=/home/mike/go-project
  cd /home/mike/go-project
  mkdir src bin pkg

main.go源代码

  package main

  import (
    "github.com/aokoli/goutils"
  )

  func main(){
    r,_:=goutils.RandomAscii(10)
    println(r)
  }

在src下面新建一个Godeps文件,该文件包含依赖的外部库的版本,文本内容如下:

github.com/nu7hatch/gotrail

添加进去后直接保存退出,该文件我们可以推送到git库里面,当我们git下载该git源码的时候,在src路径下执行gpm get即可将所有的依赖下载下来.

gvp

如果我们使用GOPATH指向我们的项目目录的话,默认情况下go get或者上面的gpm get 都会在src目录中下载所有的依赖,使得我们自己写的代码和依赖代码在一起,如何分离依赖和源代码,我们可以借助于gvp工具,这个工具会在本地创建一个新的目录,并帮助我们新增这个目录到GOPATH路径下.这样我们的程序就可以做到源码和依赖分离.

gvp工具的安装,这个工具的安装方式同gpm基本相同:

$ git clone https://github.com/pote/gvp.git && cd gvp
$ git checkout v0.2.1 # You can ignore this part if you want to install HEAD.
$ ./configure
$ make install

完成以后我们可以到项目的根目录下执行如下的命令

$ source gvp

我们会看到项目下面多了一个.godeps文件,这里我们再去查看自己的GOPATH变量就变为了

$ echo $GOPATH
/home/mike/go-project/.godeps:/home/mike/go-project

接下来如果我们通过利用gpm下载新的依赖包,这时候所有的依赖代码就会进入godeps下面的src文件,我们仍旧可以在项目本身的src下面编写源代码,最终这两个工具可以很方便的帮助我们管理包依赖.对了我们可以直接通过gvp out退出当前的项目

本文放置到个人的blog中,欢迎大家访问

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值