govendor は、vendor
メカニズムに基づく Go パッケージの依存関係管理コマンド ライン ツールです。ネイティブ ベンダーとの非侵入的な統合、および他の依存関係管理ツールからの移行もサポートしており、異なるプロジェクトでの同じパッケージの異なるバージョンの開発と管理を、相互侵入することなく簡単に実現できます。
ベンダーの機能
当初、Go はこれより適切なパッケージ管理ツールを提供していませんでした。ベンダー機能はバージョン 1.5 から提供されていますが、環境変数 GO15VENDOREXPERIMENT=1
を手動で設定する必要があります。
go build
または go run
コマンドを実行すると、パッケージは次の順序で検索されます。
- 次の順序でパッケージが検索されます。現在のパッケージのディレクトリ
- src の下にベンダー ディレクトリが見つかるまで上のディレクトリを検索します。
- GOROOT ディレクトリを検索します。
- GOPATH の下にある依存パッケージを探します
バージョン 1.6 がリリースされたとき、この環境変数の値はデフォルトで 1 に設定されていました。この値は、go env
コマンドを使用して表示できます。
バージョン 1.7 がリリースされたとき、この環境変数は削除され、vendor
機能がデフォルトで有効になりました。
ベンダーの使用に関する推奨事項
- ライブラリ プロジェクト (
main
を含まないpackage
) は、外部ファイルを独自のバージョンで保存しないでください。 control 特別な理由がなく、これを行う理由がわかっている場合を除き、パッケージはvendor
ディレクトリにあります。 -
アプリケーション (
main
を含むpackage
) では、vendor
ディレクトリを 1 つだけ存在することをお勧めします。コードベースレベルのディレクトリにあります。関連チュートリアル: go ビデオ チュートリアル
govendor の概要
govendor は、vendor## に基づくディレクトリです。 # メカニカルパッケージ管理ツール。
- プロジェクトのソース コードからの依存パッケージの分析と、
- $GOPATH
からプロジェクトの
vendorディレクトリへのコピーをサポートします
サポートされていますパッケージのバージョンを指定し、パッケージとバージョンの管理に - vendor/vendor.json
を使用します。これは、PHP の
Composer が - govendor を使用してサポートするのと同様です。 add/ update
コマンドは、
$GOPATH から依存パッケージをコピーします。 - vendor/*/
ファイルが無視される場合は、
govendor を使用できます。 syncは依存関係を復元します。 パッケージ
は直接使用できます。 - govendor fetch
は依存パッケージを追加または更新します。
利用可能な - govendor merge
は他のパッケージから使用できます。
vendorパッケージ管理ツール
govendor へのワンクリック移行 Linux、macOS、Windows、さらには既存のすべてのオペレーティング システムをサポート - Git、 Hg、SVN、BZR (パスを指定する必要があります)
- プロジェクトは
- にある必要があります。 $GOPATH/src
directory
Go バージョンが 1.5 の場合は、環境変数 - set GO15VENDOREXPERIMENT=1
go get -u github.com/kardianos/govendor
利便性と迅速な使用のために、
govendor を PATH に $GOPATH/bin
を追加することをお勧めします。 Linux/macOS の設定は次のとおりです。 <pre class='brush:php;toolbar:false;'>export PATH="$GOPATH/bin:$PATH"</pre>
Initialization
Initialization のプロジェクト ルート ディレクトリで次のコマンドを実行します。プロジェクトのルート ディレクトリ、つまり vendor
ディレクトリと
ファイルが自動的に生成されます。この時点で、vendor.json
ファイルの内容は次のとおりです。 <pre class='brush:php;toolbar:false;'>govendor init</pre>
Common Commands
$GOPATH## の下にあります。 # パッケージを
vendor- ディレクトリにコピーします
-
<pre class='brush:php;toolbar:false;'>{ "comment": "", "ignore": "test", "package": [], "rootPath": "govendor-example" }</pre>
指定されたパッケージのみを
$GOPATH
govendor add +external## からコピーします
govendor add gopkg.in/yaml.v2
govendor list
e github.com/gin-contrib/sse e github.com/gin-gonic/gin e github.com/gin-gonic/gin/binding e github.com/gin-gonic/gin/internal/json e github.com/gin-gonic/gin/render e github.com/golang/protobuf/proto e github.com/mattn/go-isatty e github.com/ugorji/go/codec e gopkg.in/go-playground/validator.v8 e gopkg.in/yaml.v2 pl govendor-example m github.com/json-iterator/go m golang.org/x/sys/unix
govendor list -v fmt
- はコピーを
- $GOPATH に保存しません)
s fmt ├── e github.com/gin-contrib/sse ├── e github.com/gin-gonic/gin ├── e github.com/gin-gonic/gin/render ├── e github.com/golang/protobuf/proto ├── e github.com/ugorji/go/codec ├── e gopkg.in/go-playground/validator.v8 ├── e gopkg.in/yaml.v2 └── pl govendor-example
<pre class='brush:php;toolbar:false;'>govendor fetch golang.org/x/net/context</pre>
- ディレクトリは変更しません)
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".
- ビルドとプロジェクトの内部コードをコンパイルします。 パッケージ
<pre class='brush:php;toolbar:false;'>govendor fmt +local</pre>
プロジェクト内のテスト ケースのみをテストします。
govendor install +local
- パッケージ
-
govendor test +local
- すべての依存パッケージを
- vendor
ディレクトリにプルします (
$GOPATH 既存または存在しないパッケージを含む)
govendor install +vendor,^program
パッケージはすでに
vendor ディレクトリにありますが、
$GOPATHgovendor fetch +out
$GOPATH
ここで、変更されてコミットされていないパッケージを vendor
govendor update +vendor
- パッケージにフォークして更新したいのですが、まだマージされていません。どうすればよいですか? 最新のコード パッケージ
govendor update -uncommitted <updated-package-import-path>
を参照すると、
normal ではなく
- からコードがプルされるようになります。
vendor.json は、依存関係パッケージの情報、更新を取得する方法を記録します
<pre class='brush:php;toolbar:false;'>govendor fetch github.com/normal/pkg::github.com/myfork/pkg</pre>
govendor サブコマンド
- 各詳しい使用方法については、サブコマンドについては、
- govendor COMMAND -h
を使用するか、
github.com/kardianos/govendor/context を参照して、ソース コード パッケージがどのように実装されているかを確認できます。
子指令 | 功能 |
---|---|
#init | ## 建立 vendor 目錄和 vendor.json 檔案
|
列出&過濾依賴包及其狀態 | |
從 | $GOPATH 複製套件到專案 vendor 目錄
|
#從 | $GOPATH 更新依賴套件到專案vendor 目錄
|
從 | vendor 目錄移除依賴的套件
|
列出所有缺失、過期和修改過的套件 | ## fetch |
vendor | 目錄(不會儲存到$GOPATH)
| sync
vendor.json | 拉取相符的套件到vendor 目錄 ##migrate |
實作的套件管理工具中一鍵遷移 |
#get |
類似,將套件下載到 | $GOPATH,再將依賴套件複製到vendor 目錄
license |
shell | |
指令 |
| govendor 狀態參數
意義 | ||
---|---|---|
local | ||
本地包,即專案內部所寫的套件 | external e 外部包,即在 | GOPATH|
目錄 | ## vendor | ##v
|
#已在 | vendor | 目錄下的套件
| std
標準庫裡的套件 | excluded | |
#明確被排除的外部套件 | unused | |
#未使用的套件,即在 | vendor 目錄下,但專案中並未引用到 |
missing |
被引用了但卻找不到的套件 | p |
outside
#相當於狀態為
external missing
all ###所有套件################支援狀態參數的子指令有:###list## #、###add###、###update###、###remove###、###fetch#########Go modules######普大喜奔的是,從Go 1.11 版本開始,官方已內建了更為強大的Go modules 來一統多年來Go 包依賴管理混亂的局面(Go 官方之前推出的dep 工具也幾乎胎死腹中),並且將在1.13版本中正式預設開啟。 ######目前已受到社群的看好和強烈推薦,建議新專案採用 Go modules。 ###
以上がGo パッケージの依存関係管理ツールである govendor についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
