zoukankan      html  css  js  c++  java
  • 拾遗:govendor(Golang 依赖库版本控制)

    官方资料:

    效果

    • 逐层递归向上查找遇到的 vendor 目录,直到找到目标内容
    • 若 vendor 目录中没有找到目标,最后会去 go 的标准目录下查找

    Quick Start

    # Setup your project.
    cd "my project in GOPATH"
    govendor init
    
    # Add existing GOPATH files to vendor.
    govendor add +external
    
    # View your work.
    govendor list
    
    # Look at what is using a package
    govendor list -v fmt
    
    # Specify a specific version or revision to fetch
    govendor fetch golang.org/x/net/context@a4bbce9fcae005b22ae5443f6af064d80a6f5a55
    govendor fetch golang.org/x/net/context@v1   # Get latest v1.*.* tag or branch.
    govendor fetch golang.org/x/net/context@=v1  # Get the tag or branch named "v1".
    
    # Update a package to latest, given any prior version constraint
    govendor fetch golang.org/x/net/context
    
    # Format your repository only
    govendor fmt +local
    
    # Build everything in your repository only
    govendor install +local
    
    # Test your repository only
    govendor test +local

    FAQ

    Q: How do I test only my packages?
      A: Run govendor test +local.
    Q: How do I build install all my vendor packages?
      A: Run govendor install +vendor,^program.
    Q: How do I pull all my dependencies from network remotes?
      A: Run govendor fetch +out.
    Q: I have a working program with dependencies in $GOPATH. I want to vendor now.
      A: Run govendor add +external.
    Q: I have copied dependencies into "vendor". I want to update from $GOPATH.
      A: Run govendor update +vendor.
    Q: I'm getting missing packages from appengine but I don't care about appengine. How do I ignore these packages?
      A: Edit the vendor/vendor.json file. Update the "ignore" field to include "appengine". If you are already ignoring tests, it will look like: "ignore": "test appengine",.
    Q: I have modified a package in $GOPATH and I want to try the changes in vendor without committing them.
      A: Run govendor update -uncommitted <updated-package-import-path>.
    Q: I've forked a package and I haven't upstreamed the changes yet. What should I do?
      A: Assuming you've pushed your changes to an accessable repository, run govendor fetch github.com/normal/pkg::github.com/myfork/pkg. This will fetch from "myfork" but place package in "normal".
    Q: I have C files or HTML resources in sub-folders. How do I ensure they are copied as well?
      A: Run either govendor fetch github.com/dep/pkg/^ or govendor add github.com/dep/pkg/^. This is the same as using the -tree argument.
    Q: How do I prevent vendor source from being checked in?
      A: Add vendor/*/ to your ignore file.
    Q: How do I populate the vendor folder if it has not been checked in?
      A: Run govendor sync.

    ...

  • 相关阅读:
    Linux实现ftp账号同时访问两个目录方法
    ubuntu系统中的VMware 安装win7 Ghost镜像的几个坑
    ubuntu14.04LTS安装vmware10.0.1
    翻页特效
    使用Fragment应用放置后台很久,被系统回收,出现crash
    Android软件安全开发实践(下)
    移动应用安全开发指南(Android)--完结篇(http://www.bubuko.com/infodetail-577312.html)
    数字签名与数字加密
    time_wait 原理分析和优化
    Go中http超时问题的排查
  • 原文地址:https://www.cnblogs.com/hadex/p/6656567.html
Copyright © 2011-2022 走看看