GlideによるGolangのパッケージ管理

2842 ワード

概要
Golangのパッケージ管理ツールはたくさんありますが、本編では主にGlideによるパッケージ管理について説明します.
インストールおよびコマンドの説明
➜ tonny@tonny-pc  ~ go get github.com/Masterminds/glide

コマンドはglide create|init初期化プロジェクトを紹介し、glide.yamlファイルを作成します.glide getは単一のパッケージを取得します.all-dependenciesは、.git-vネストされたvendor glide installインストールパッケージglide update|up更新パッケージなど、関連するすべての依存パッケージをダウンロードします.
ケーススタディ
の準備を
今回テストしたパッケージはgithub.com/mattn/go-adodbで、このパッケージの1つの依存パッケージはgithub.com/go-ole/go-oleです.
個々のパッケージのダウンロード
command:
    glide get github.com/mattn/go-adodb
 
glide.lock:
    hash:    60061bf3133f0eec2f147f3d80f3e37c402ee12df8cde841b03d80c82a96bab7
    updated: 2016-05-18T23:30:08.5219207+08:00
    imports:
    - name: github.com/mattn/go-adodb
      version: 452cccbbcfb7906b3cbc512992557c1083e1011b
    devImports: []
 
glide.yaml:
    package: glide_demo6
    import:
    - package: github.com/mattn/go-adodb

単一のパッケージをダウンロード--all-dependencies
command:
    glide get --all-dependencies -s -v github.com/mattn/go-adodb
 
glide.lock:
    hash: 60061bf3133f0eec2f147f3d80f3e37c402ee12df8cde841b03d80c82a96bab7
    updated: 2016-05-18T23:34:48.7545322+08:00
    imports:
    - name: github.com/go-ole/go-ole
      version: 572eabb84c424e76a0d39d31510dd7dfd62f70b2
      subpackages:
      - oleutil
    - name: github.com/gonuts/commander
      version: f8ba4e959ca914268227c3ebbd7f6bf0bb35541a
    - name: github.com/gonuts/flag
      version: 741a6cbd37a30dedc93f817e7de6aaf0ca38a493
    - name: github.com/mattn/go-adodb
      version: 452cccbbcfb7906b3cbc512992557c1083e1011b
    devImports: []
 
glide.yaml:
    package: glide_demo6
    import:
    - package: github.com/mattn/go-adodb

lockから、確かにすべての依存パッケージがダウンロードされていることがわかります.
バージョン番号を設定したパッケージをダウンロード
command:
    glide get github.com/go-sql-driver/mysql#v1.2
 
glide.yaml:
    package: glide_demo
    import:
    - package: github.com/go-sql-driver/mysql
      version: v1.2

チーム開発
チームが開始するときはglide.yamlとglide.lockをバージョン管理する必要があります.vendorは無視します.チームが開発したプロセスAのシミュレーション:プロジェクトを初期化し、ソースコードを提出しました.glide.yamlとglide.lockの内容は以下の通りです.
glide.yaml:
    package: glide_demo6
    import:
    - package: github.com/mattn/go-adodb
    - package: github.com/go-ole/go-ole

glide.lock:
    hash: 18e3b9c2f5c11f3268b22ebdbea09636c5cae28e78f0011578f455c485e9d214
    updated: 2016-05-18T23:43:15.8217224+08:00
    imports:
    - name: github.com/go-ole/go-ole
      version: 572eabb84c424e76a0d39d31510dd7dfd62f70b2
    - name: github.com/mattn/go-adodb
      version: 452cccbbcfb7906b3cbc512992557c1083e1011b
    devImports: []

Bさん:プロジェクトを引っ張って、glide installを実行して、自動的に対応するかばんをダウンロードします
まとめ
glideを使用するメリットは、各プロジェクトが独立したパッケージを採用し、パッケージのバージョンをよく制御できることです.これはチーム開発において特に重要です.