go vendor管理Golang项目依赖
解决的问题
将源码拷贝到当前工程的vendor目录下,这样打包当前的工程代码到任意机器的$GOPATH/src下都可以通过编译。
govendor
1、安装
go get -u -v github.com/kardianos/govendor
2、命令:govendor init
创建vendor目录,目录中会存在vendor.json文件,如下图

3、命令govendor add +external
生成依赖包

4、更新vendor的包命令govendor update +vendor
- 具体来看,这些包可能的类型如下:
| 状态 | 缩写状态 | 含义 |
|---|---|---|
| +local | l | 本地包,即项目自身的包组织 |
| +external | e | 外部包,即被 $GOPATH 管理,但不在 vendor 目录下 |
| +vendor | v | 已被 govendor 管理,即在 vendor 目录下 |
| +std | s | 标准库中的包 |
| +unused | u | 未使用的包,即包在 vendor 目录下,但项目并没有用到 |
| +missing | m | 代码引用了依赖包,但该包并没有找到 |
| +program | p | 主程序包,意味着可以编译为执行文件 |
| +outside | 外部包和缺失的包 | |
| +all | 所有的包 |
- 通过指定包类型,可以过滤仅对指定包进行操作。
| 命令 | 功能 |
|---|---|
init |
初始化 vendor 目录 |
list |
列出所有的依赖包 |
add |
添加包到 vendor 目录,如 govendor add +external 添加所有外部包 |
add PKG_PATH |
添加指定的依赖包到 vendor 目录 |
update |
从 $GOPATH 更新依赖包到 vendor 目录 |
remove |
从 vendor 管理中删除依赖 |
status |
列出所有缺失、过期和修改过的包 |
fetch |
添加或更新包到本地 vendor 目录 |
sync |
本地存在 vendor.json 时候拉去依赖包,匹配所记录的版本 |
get |
类似 go get 目录,拉取依赖包到 vendor 目录 |
go vendor管理Golang项目依赖的更多相关文章
- Emacs中多个golang项目的配置方法
概述 最近使用golang开发项目时, 发现有时需要同时进行多个golang项目. 在这种情况下, 如果把所有的项目都放在 GOPATH 之下, 不仅管理麻烦(因为各个项目需要提交到不同的代码库), ...
- 使用vendor管理go第三方包
安装verdor go get -u -v https://github.com/kardianos/govendor 记得将$GOPATH/bin加入PATH verdor使用 goverdor i ...
- Maven解读:项目依赖管理如何优化
Github地址:https://github.com/zwjlpeng/Maven_Detail Maven最大的好处莫过于其强大的依赖管理系统,在Pom配置文件中指定项目需要的Jar包的坐标,Ma ...
- Golang项目开发管理
工具 1. task(项目管理,类似于make) go get -u -v github.com/go-task/task/cmd/task 2. gopm(go依赖管理) go get -u git ...
- Maven多模块项目依赖管理
Maven多模块项目依赖管理及dependencies与dependencyManagement的区别 转自:http://blog.csdn.net/liutengteng130/article/d ...
- golang 项目实战简明指南
原文地址 开发环境搭建 golang 的开发环境搭建比较简单,由于是编译型语言,写好 golang 源码后,只需要执行 go build 就能将源码编译成对应平台(本文中默认为 linux)上的可执行 ...
- 使用maven来管理java项目
初学maven,简单总结一下学习心得,若有不对的地方,欢迎各位大神给我指正~ 总结分为6个部分 maven概述 maven安装 maven项目结构和创建方法 maven配置文件settings.xml ...
- 使用composer安装项目依赖
Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们 下载并安装composer composer官方文档有好几种安装方法,此处只介绍我实验过 ...
- Java Gradle入门指南之依赖管理(添加依赖、仓库、版本冲突)
开发任何软件,如何管理依赖是一道绕不过去的坎,软件开发过程中,我们往往会使用这样那样的第三方库,这个时候,一个好的依赖管理就显得尤为重要了.作为一个自动构建工作,Gradle对依赖管理有着很好 ...
随机推荐
- hdu-6165(tarjan+topusort)
题意:一个有向图,无自环,无重边,让你判断这个图内的任意两点是否有路: 解题思路:首先,判断两个点是否可达一般用出入度来判断,如果在拓扑排序中同时有两个及以上入度同时为零的点,那么,这些入度的为零的点 ...
- Django restframe 视图函数以及ModelSerializer的使用
建立model数据库 from django.db import models __all__ = ['Book', 'Publisher', 'Author'] # Create your mode ...
- 前端部分-CSS基础介绍
CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素.也就是定义相应的标签语言来定制显示样式达到一定的显示效果. 每个CSS样式由两个组成部分:选择器和 ...
- python变量与基础数据类型
一.什么是变量 变量是什么? 变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用.在python中一切都是变量. 1.python变量命名的要求 1,必须有数字,字母,下划线任意组合. ...
- python的图形模块PIL小记
前言: 跟我一块住的室友是个搞通信,每天下班后基本必须做的事情是,第一P图,将那些不合格的图片上的数据,p成合格的.第二就是将做好的P图以及产生的日志文件按照固定的名字重新命名.我为了他能够早点睡觉, ...
- codeforces1101D GCD Counting 【树形DP】
题目分析: 蛮简单的一道题,对于每个数拆质因子,对于每个质因子找出最长链,在每个地方枚举一下拼接 代码: #include<bits/stdc++.h> using namespace s ...
- composer 重装常见错误
install composer error: ------------------------------------ The PHP exe file you specified did not ...
- Hdoj 1789 Doing Homework again 题解
Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of h ...
- [HAOI2010]最长公共子序列(LCS+dp计数)
字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X ...
- 树状数组入门 hdu1541 Stars
树状数组 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构.主要用于查询任意两位之间的所有元素之和,但是每次 ...