golang进阶(一)——glide的使用手册
来源:互联网 发布:类似诛仙的小说知乎 编辑:程序博客网 时间:2024/06/08 21:07
+++
title=”golang进阶(一)——glide的使用手册”
date=”2017-10-10”
tags=[“golang”,”glide”,”docker”]
categories=[“资源管理”]
description=”golang也有包管理,类似maven,gradle,npm,bower之类的”
featured=true
image=”img/201710/fengjing1.jpeg”
+++
golang的包管理软件有很多,我选择了glide,由于深中docker之毒,所以方式也就用docker的方式来了,看不懂的先补docker的课
glide的Dockerfile
直接把glide做成镜像,基础镜像是golang,把两者打包成一个golang的运行环境
Dockerfile文件如下
FROM golang:1.8-jessieMAINTAINER lastsweetop "lastsweetop@163.com"RUN mkdir /root/app/WORKDIR /root/app/RUN go get github.com/Masterminds/glideRUN echo export GOPATH=/root/app >> /root/.bashrcCMD tail -f ~/.bashrc
docker build一下,glide的镜像就制作好了,只要一个人做好镜像,团队里的其他人直接用就可以,多方便的docker啊
stack文件
另外docker run的命令行也太长了,虽然只用一台服务器,一样也有stack,把所有配置写在stack的配置文件里
version: "3"services: dev: image: www.lastsweetop.com:5000/godev deploy: replicas: 1 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure volumes: - $PWD:/root/app
这样本地的工程就与glide镜像产生的容器结合了
glide操作
正题开始
glide init
这样会产生一个glide.yaml文件,格式如下
package: .import: []
如果代码中新加了一个第三方包
package cmdimport ( "github.com/spf13/cobra")var RootCmd = &cobra.Command{ Use: "hugo", Short: "Hugo is a very fast static site generator", Long: `A Fast and Flexible Static Site Generator built with love by spf13 and friends in Go. Complete documentation is available at http://hugo.spf13.com`, Run: func(cmd *cobra.Command, args []string) { // Do Stuff Here },}
其实只需要
glide up
这样就可以了,会自动安装你所有新增的包,但是并不会出现在glide.yaml文件中,不过没关系,同事间的版本唯一性是由glide.lock控制的
hash: 3bac0e5b315ed9ae09f31bfae4f77c882ce25d42ccfa70f4dc9fe0cd0bef499fupdated: 2017-10-09T10:55:56.169042004Zimports:- name: github.com/inconshreveable/mousetrap version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75- name: github.com/spf13/cobra version: 50204810fdb5010baae72e4f41b303689cbdcc9f- name: github.com/spf13/pflag version: a9789e855c7696159b7db0db7f440b449edf2b31testImports: []
除非需要指定包的特定版本,才需要修改glide.yaml文件
目录结构
这是一个大坑,其他资料都说放在工程的根目录,其实是有歧义的,其实是放在GOPATH中的src文件目录下的任意一级
这是我的目录结构
.├── README.md├── bin│ └── main├── pkg│ └── linux_amd64│ ├── lastsweetop.com│ └── vendor├── src│ ├── glide.lock│ ├── glide.yaml│ ├── lastsweetop.com│ │ ├── cmd│ │ ├── main│ │ ├── model│ │ └── tools│ └── vendor│ └── github.com└── stack-gonne.yml
- golang进阶(一)——glide的使用手册
- Glide进阶详解(一)
- Glide深入浅出(一)——Glide vs Picasso
- golang进阶(四)——路由mux的最佳实践
- golang进阶(五)——restful开发的json处理
- xutils使用手册(一)——初始化
- golang进阶(二)——cobra更实用的命令行
- vim的使用手册(一)
- Android图片之Glide(一),Glide的基本用法
- Hadoop-v2_streaming使用手册,简单易懂的使用手册(一)
- Glide进阶详解(二)
- Glide进阶详解(三)
- Glide进阶详解(四)
- Glide进阶详解(五)
- Glide进阶详解(六)
- Glide进阶详解(七)
- Glide进阶详解(八)
- Glide进阶详解(九)
- EA&UML日拱一卒-状态图::开篇
- 适配器list
- main()函数
- idea将jar包发布到私服
- 树状数组示意图
- golang进阶(一)——glide的使用手册
- sql | 基础总结 | 思维导图
- Android里jsonarray原生解析数组/集合
- 各种排序算法
- java中的SPI机制
- SSM学习
- zbar和zxing之间的对比
- 在看完机器学习实战第一章及敲完代码的总结
- POJ