zoukankan      html  css  js  c++  java
  • Golang包管理工具之govendor的使用

    1. govendor简介

    golang工程的依赖包经常使用go get命令来获取,例如:go get github.com/kardianos/govendor ,会将依赖包下载到GOPATH的路径下。

    常用的依赖包管理工具有godepgovendor等,在Golang1.5之后,Go提供了 GO15VENDOREXPERIMENT 环境变量(Go 1.6版本默认开启该环境变量),用于将go build时的应用路径搜索调整成为 当前项目目录/vendor 目录方式。通过这种形式,我们可以实现类似于 godep 方式的项目依赖管理。

    2. 安装与使用

    2.1. 安装

    go get -u -v github.com/kardianos/govendor

    2.2. 使用

    复制代码
    #进入到项目目录
    cd /home/gopath/src/mytool
    
    #初始化vendor目录
    govendor init
    
    #查看vendor目录
    [root@CC54425A mytool]# ls
    commands  main.go  vendor  mytool_test.sh
    
    #将GOPATH中本工程使用到的依赖包自动移动到vendor目录中
    #说明:如果本地GOPATH没有依赖包,先go get相应的依赖包
    govendor add +external
    或使用缩写: govendor add +e 
    
    #Go 1.6以上版本默认开启 GO15VENDOREXPERIMENT 环境变量,可忽略该步骤。
    #通过设置环境变量 GO15VENDOREXPERIMENT=1 使用vendor文件夹构建文件。
    #可以选择 export GO15VENDOREXPERIMENT=1 或 GO15VENDOREXPERIMENT=1 go build 执行编译
    export GO15VENDOREXPERIMENT=1
    复制代码

    2.3. 说明

    govendor只是用来管理项目的依赖包,如果GOPATH中本身没有项目的依赖包,则需要通过go get先下载到GOPATH中,再通过govendor add +external拷贝到vendor目录中。Go 1.6以上版本默认开启GO15VENDOREXPERIMENT环境变量。

    2.3. 常用命令

    常见的命令如下,格式为 govendor COMMAND

    命令功能
    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 目录

    具体来看,这些包可能的类型如下:

    govendor在windows上执行的注意事项:

    假设 

    GOPATH: D:go_www
    项目目录:  D:go_wwwsrc est
     
    前提
    1. GOPATH 下的 bin 目录添加到 PATH 变量里。
     
     
    安装 govendor
     
    go get -u github.com/kardianos/govendor
     
    安装后 GOPATHin 目录下会自动生成 govendor.exe 
     
    执行 初始化
     
    cd D:go_wwwsrc est
    govendor init
     
    正常情况下上面的命令会在 test 目录里创建 vendor 目录和 vendor/vendor.json 。
     
    问题解决:
     
    如果报错那就:
     
    1. 如果 GOPATH 设有多条,先删除其他的,只保留当前目录的(D:go_www)
    2. 在当前项目目录下创建 src 目录,绝对路径为 D:go_wwwsrc estsrc (不知道为什么要这样)
     
    然后在执行 govendor init
     
     
    遇到的错误:
    Error: FindFirstFile E:go_www: The system cannot find the file specified. 显示具体的其他路径(gopath 路径之一),对应解决方案1
     
    Error: FindFirstFile src: The system cannot find the file specified. 对应解决方案 2
  • 相关阅读:
    2.Android之按钮Button和编辑框EditText学习
    《DSP using MATLAB》Problem 3.8
    《DSP using MATLAB》Problem 3.7
    《DSP using MATLAB》Problem 3.6
    《DSP using MATLAB》Problem 3.5
    《DSP using MATLAB》Problem 3.4
    《DSP using MATLAB》Problem 3.3
    《DSP using MATLAB》Problem 3.2
    《DSP using MATLAB》Problem 3.1
    《DSP using MATLAB》Problem 2.20
  • 原文地址:https://www.cnblogs.com/ExMan/p/11431473.html
Copyright © 2011-2022 走看看