分享
  1. 首页
  2. 文章

golang进阶(一)——glide的使用手册

lastsweetop · · 2429 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

+++
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-jessie
MAINTAINER lastsweetop "lastsweetop@163.com"
RUN mkdir /root/app/
WORKDIR /root/app/
RUN go get github.com/Masterminds/glide
RUN echo export GOPATH=/root/app >> /root/.bashrc
CMD 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 cmd
import (
 "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: 3bac0e5b315ed9ae09f31bfae4f77c882ce25d42ccfa70f4dc9fe0cd0bef499f
updated: 2017-10-09T10:55:56.169042004Z
imports:
- name: github.com/inconshreveable/mousetrap
 version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75
- name: github.com/spf13/cobra
 version: 50204810fdb5010baae72e4f41b303689cbdcc9f
- name: github.com/spf13/pflag
 version: a9789e855c7696159b7db0db7f440b449edf2b31
testImports: []

除非需要指定包的特定版本,才需要修改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

有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:lastsweetop

查看原文:golang进阶(一)——glide的使用手册

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2429 次点击
1 回复 | 直到 2025年05月15日 09:03:29
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏