Golangバッグ管理ツールのgoventdorの使用

5965 ワード

goventdor概要
長い間、外部依存の管理がうまくできておらず、ドルGOPATHの下から信頼を探すしかなかった.これは、別のユーザーが同じプロジェクトをインストールする際に、外部から異なる依存ライブラリバージョンを取得することができるようになります.同時に、ネットワーク接続ができない場合、依存性がない項目をコンパイルすることができません.
1.5バージョンからgoventdorツールを導入し、このツールはプロジェクト依存の外部パッケージをプロジェクト下のventdorディレクトリ(nodejsのnodeumodulesディレクトリと比較して)に置いて、ventdor.jsonファイルを通じて依存パッケージのバージョンを記録し、ユーザーが比較的安定した依存関係を利用するのに便利です.
govendorにとって、主に三つの位置のカバンがあります.プロジェクト自体のパッケージはローカルパッケージです.従来のGOPATHに保存された依存パッケージは外部(external)依存パッケージである.govendorに管理されているセブンドラックの下に置いてある依存カバンはセブンドラックです.
インストールと使用
インストール
C:\Users\Administrator>go get -u -v github.com/kardianos/govendor
github.com/kardianos/govendor (download)
github.com/kardianos/govendor/pkgspec
github.com/kardianos/govendor/prompt
github.com/kardianos/govendor/internal/pathos
github.com/kardianos/govendor/vendor/github.com/Bowery/prompt
github.com/kardianos/govendor/internal/vos
github.com/kardianos/govendor/vendorfile
github.com/kardianos/govendor/vendor/github.com/dchest/safefile
github.com/kardianos/govendor/vendor/github.com/pkg/errors
github.com/kardianos/govendor/vendor/gopkg.in/yaml.v2
github.com/kardianos/govendor/internal/vfilepath
github.com/kardianos/govendor/vendor/golang.org/x/tools/go/vcs
github.com/kardianos/govendor/vcs
github.com/kardianos/govendor/vendor/github.com/google/shlex
github.com/kardianos/govendor/cliprompt
github.com/kardianos/govendor/context
github.com/kardianos/govendor/migrate
github.com/kardianos/govendor/help
github.com/kardianos/govendor/run
検証
C:\Users\Administrator>govendor -version
v1.0.9

使用
#       
cd /home/gopath/src/project
#   vendor  
govendor init
# GOPATH                vendor   
#  :    GOPATH     , go get      
govendor add +external
     : govendor add +e 
常用コマンド
C:\Users\Administrator>govendor
govendor (v1.0.9): record dependencies and copy into vendor folder
        -govendor-licenses    Show govendor's licenses.
        -version              Show govendor version
        -cpuprofile 'file'    Writes a CPU profile to 'file' for debugging.
        -memprofile 'file'    Writes a heap profile to 'file' for debugging.

Sub-Commands

        init     Create the "vendor" folder and the "vendor.json" file.
        list     List and filter existing dependencies and packages.
        add      Add packages from $GOPATH.
        update   Update packages from $GOPATH.
        remove   Remove packages from the vendor folder.
        status   Lists any packages missing, out-of-date, or modified locally.
        fetch    Add new or update vendor folder packages from remote repository.
        sync     Pull packages into vendor folder from remote repository with revisions
                     from vendor.json file.
        migrate  Move packages from a legacy tool to the vendor folder with metadata.
        get      Like "go get" but copies dependencies into a "vendor" folder.
        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

Status Types

        +local    (l) packages in your project
        +external (e) referenced packages in GOPATH but not in current project
        +vendor   (v) packages in the vendor folder
        +std      (s) packages in the standard library

        +excluded (x) external packages explicitly excluded from vendoring
        +unused   (u) packages in the vendor folder, but unused
        +missing  (m) referenced packages but not found

        +program  (p) package is a main package

        +outside  +external +missing
        +all      +all packages

        Status can be referenced by their initial letters.

Package specifier
        [::][{/...|/^}][@[]]

Ignoring files with build tags, or excluding packages from being vendored:
        The "vendor.json" file contains a string field named "ignore".
        It may contain a space separated list of build tags to ignore when
        listing and copying files.
        This list may also contain package prefixes (containing a "/", possibly
        as last character) to exclude when copying files in the vendor folder.
        If "foo/" appears in this field, then package "foo" and all its sub-packages
        ("foo/bar", …) will be excluded (but package "bar/foo" will not).
        By default the init command adds the "test" tag to the ignore list.

If using go1.5, ensure GO15VENDOREXPERIMENT=1 is set.
一般的なコマンドは、goventdor COMMAND形式です.
パッケージタイプを指定することにより、指定されたパケットのみをフィルタリングして操作することができます.
コマンド
機能
init
初期化ベンダーディレクトリ
リスト
すべての依存パケットを一覧表示します.
add
このパッケージをベンダーディレクトリに追加します.例えば、goventdor add+eのように、すべての外部パッケージを追加します.
add
PKG_PATH指定の依存パックをベンダーディレクトリに追加します.
udate
GOPATHからの依存パケットをベンダーdorディレクトリに更新します.
remove
ベンダdor管理から依存を削除する
status
欠落、失効、修正されたすべてのパケットを一覧表示します.
fetch
ローカルベンダーディレクトリにパッケージを追加または更新します.
sync
ローカルにあるベンゼン.jsonの時にカバンを引いて、記録したバージョンにマッチします.
get
go getディレクトリのように、依存カバンをventdorディレクトリに引き出します.
サブコマンド:
状態
略語の状態
意味
+local
l
ローカルパッケージとは、プロジェクト自体のパッケージ組織です.
+external
e
外部パッケージは$GOPATHで管理されていますが、ベンダーディレクトリの下にはありません.
+ventdor
v
goventdorに管理されています.つまり、ベンダーディレクトリの下です.
+std
s
標準倉庫のカバン
+unused
u.
未使用のカバンは、ベンダーディレクトリの下にありますが、プロジェクトは使用されていません.
+missing
m
コードは依存パケットを参照していますが、このカバンは見つかりませんでした.
+program
p
メインパッケージは、実行ファイルとしてコンパイルできるという意味です.
+out side
外部パッケージと欠落したカバン
+all
すべてのカバン