golang的包管理系统

下面是测试结果

- 自带的vendor
  - 项目创建vendor子目录,然后github的地址放进去就ok了

- govendor
  - 安装:go get -u github.com/kardianos/govendor
  - 初始化:govendor init
  - 测试:govendor fetch github.com/ziyouchutuwenwu/objective-go
  - 问题:
    fetch貌似没有把所有的子目录都弄下来
    get装到GOPATH里面去了,蛋疼

- gvt
- 安装:go get -u github.com/FiloSottile/gvt
  - 测试:gvt fetch github.com/ziyouchutuwenwu/objective-go
  - 优势:
    全部下载,支持tag和branch下载

- gb
- 安装:go get github.com/constabulary/gb/...
  - 测试:gvt fetch github.com/ziyouchutuwenwu/objective-go
  - 问题:
    先下载依赖库,成功以后下载需要的repo,全部成功以后才会在vendor目录里面,在天朝,golang.org的访问出问题,这个模式不太好

- glide
- 安装:go get github.com/Masterminds/glide
  - 初始化:glide create  - 下载:glide install
  - 优势:
    根据你的代码自动发现需要的import包,创建yaml文件,适合团队合作(没必要在自己的项目repo里面带一堆三方库,靠这个就可以了)    支持自定义镜像,这个在别的里面没发现

直接glide

配置方式

rm -rf ~/.glide
mkdir -p ~/.glide

glide mirror set https://golang.org/x/mobile https://github.com/golang/mobile --vcs git
glide mirror set https://golang.org/x/crypto https://github.com/golang/crypto --vcs git
glide mirror set https://golang.org/x/net https://github.com/golang/net --vcs git
glide mirror set https://golang.org/x/tools https://github.com/golang/tools --vcs git
glide mirror set https://golang.org/x/text https://github.com/golang/text --vcs git
glide mirror set https://golang.org/x/image https://github.com/golang/image --vcs git
glide mirror set https://golang.org/x/sys https://github.com/golang/sys --vcs git
时间: 2024-08-08 14:03:45

golang的包管理系统的相关文章

【转】 Homebrew – OSX下简单的包管理系统

很多linux用户很喜欢 (Debian/Ubuntu)系列的apt包管理系统和(Redhat/Fedora)系列的yum包管理系统. 包括Windows用户都有多种方便的软件管理工具,如:360软件管理,QQ软件管理,迅雷软件管理等多种. Mac OS X系统下面之前有老牌的Macports,Fink包管理系统(以后小编会陆续介绍),包括apple的官方Mac App Store. 本篇文章小编我主要介绍一下Homebrew一款比较新的,方便的包管理系统. Homebrew让你免去无数.con

Golang fmt包使用小技巧

h1 { margin-top: 0.6cm; margin-bottom: 0.58cm; direction: ltr; color: #000000; line-height: 200%; text-align: justify; page-break-inside: avoid; orphans: 0; widows: 0 } h1.western { font-family: "Times New Roman", serif; font-size: 22pt } h1.cjk

3.Golang的包导入

1.golang的源码文件可以随意命名,但是属于同一个包的源文件必须声明 package base 2.golang的包引入规则 import ( "fmt" #系统包直接写名字 "github.com/user/stringutil" #其余包 写 src 下的绝对路径 ) go help importpath A few common code hosting sites have special syntax: Bitbucket (Git, Mercuria

Golang Context 包详解

Golang Context 包详解 0. 引言 在 Go 语言编写的服务器程序中,服务器通常要为每个 HTTP 请求创建一个 goroutine 以并发地处理业务.同时,这个 goroutine 也可能会创建更多的 goroutine 来访问数据库或者 RPC 服务. 当这个请求超时或者被终止的时候,需要优雅地退出所有衍生的 goroutine,并释放资源.因此,我们需要一种机制来通知衍生 goroutine 请求已被取消. 比如以下例子,sleepRandom_1 的结束就无法通知到 sle

简析 Golang IO 包

简析 Golang IO 包 io 包提供了 I/O 原语(primitives)的基本接口.io 包中定义了四个最基本接口 Reader.Writer.Closer.Seeker 用于表示二进制流的读.写.关闭和寻址操作.这些原语和接口是对底层操作的封装,因此如没有特殊说明,这些原语和接口都不能被视为线程安全的. Reader Reader 接口封装了基本的 Read 方法.Read 读取长度为 len(p) 字节的数据,并写入到 p.返回结果包含读取数据字节数(0 <= n <= len(

[golang] Glide 包管理

一.概述 golang的包管理工具有很多,本篇幅主要介绍glide进行包管理. 二.安装及命令介绍 go get github.com/Masterminds/glide glide create|init 初始化项目并创建glide.yaml文件. glide get 获取单个包 --all-dependencies 会下载所有关联的依赖包 -s 删除所有版本控制,如.git -v 删除嵌套的vendor glide install 安装包 glide update|up 更新包 三.案例测试

golang net包学习笔记

阅读源代码发现在net包中主要实现了ip.tcp.udp.unix等通信方式.它们大致可以分成两大类:其一,ip.udp.unix(DGRAM),这是一些无链接的协议,其二,tcp.unix(STREAM),需要建立链接.net对这两类协议的使用有一些区别,最明显的是对于tcp.unix(STEAM)这些协议需要使用一个Listener接口来进行服务端的监听, 其中每一种通信方式都使用 xxConn 结构体来表示,诸如IPConn.TCPConn等,这些结构体都实现了Conn接口,Conn接口实

Golang学习--包管理工具glide

上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依赖的库. php项目中使用composer,javascript项目中使用npm,那么在go项目中,我们需要使用什么? 包依赖工具的选择 当前go的包管理工具有glide.godep.govendor和gvt等,相关对比的文章可以查看<go依赖包管理工具对比>. 功能对比可以参考如下内容(虽然跟上

golang 常用包安装

常用到的: go get -v github.com/nsf/gocode go get -v github.com/rogpeppe/godef go get -v golang.org/x/tools/cmd/godoc go get -v golang.org/x/tools/cmd/goimports go get -v github.com/golang/lint/golint go get -v github.com/derekparker/delve/cmd/dlv go get