govendor 操作

go依賴管理-govendor

Golang 官方並沒有推薦最佳的包管理方案。到了1.5版本時代,官方引入包管理的設計,加了 vendor 目錄來支持本地包管理依賴。官方 wiki 推薦了多種支持這種特性的包管理工具,如:Godep、gv、gvt、glide、govendor等。
  govendor該工具將項目依賴的外部包拷貝到項目下的 vendor 目錄下,並通過 vendor.json 文件來記錄依賴包的版本,方便用戶使用相對穩定的依賴。
對於 govendor 來說,依賴包主要有以下多種類型:

狀態 縮寫狀態 含義

+local l 本地包,即項目自身的包組織
+external e 外部包,即被 $GOPATH 管理,但不在 vendor 目錄下
+vendor v 已被 govendor 管理,即在 vendor 目錄下
+std s 標準庫中的包
+unused u 未使用的包,即包在 vendor 目錄下,但項目並沒有用到
+missing m 代碼引用了依賴包,但該包並沒有找到
+program p 主程序包,意味着可以編譯爲執行文件
+outside 外部包和缺失的包
+all 所有的包

安裝

編譯一個govendor

go get -u github.com/kardianos/govendor
The project must be within a $GOPATH/src

Quick Start

設置你的工程

cd “my project in GOPATH”
govendor init

加入存在的 GOPATH 文件到vendor.

govendor add +external

查看你的vendor 列表

govendor list

Look at what is using a package

govendor list -v fmt

#指明獲取的版本
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”.

更新

govendor fetch golang.org/x/net/context

格式化

govendor fmt +local

構建

govendor install +local

測試

govendor test +local
3.3 Sub-commands

init 創建 vendor 文件夾和 vendor.json 文件
list 列出已經存在的依賴包
add 從 $GOPATH 中添加依賴包,會加到 vendor.json
update 從 $GOPATH 升級依賴包
remove 從 vendor 文件夾刪除依賴
status 列出本地丟失的、過期的和修改的package
fetch 從遠端庫增加新的,或者更新 vendor 文件中的依賴包
sync Pull packages into vendor folder from remote repository with revisions
migrate Move packages from a legacy tool to the vendor folder with metadata.
get 類似 go get,但是會把依賴包拷貝到 vendor 目錄
license List discovered licenses for the given status or import paths.
shell Run a “shell” to make multiple sub-commands more efficient for large projects.

go tool commands that are wrapped:
+<status> package selection may be used with them
fmt, build, install, clean, test, vet, generate, tool

http://www.wuecho.com/

發佈了223 篇原創文章 · 獲贊 17 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章