2016-07-19 1 views
1

私は依存関係をローカルにインストールする問題に苦しんでいます。それは正常に動作し、継続的な統合サーバーにプッシュしてから、私はgodep save ./...の依存関係を忘れてしまったために破損します。ベンダーの依存関係のみを使ってgoコマンドを実行するには?

goコマンドを実行するにはどうすればよいですか?vendorインポートが必要ですか?

編集:

私はgo1.6を使用しています。サードパーティの依存関係でない場合、コマンドが失敗するようにしたいです。をベンダーに解決してください。つまり、テスト中に$GOPATHの依存関係を解決する方法はありますか?

環境変数を変更することはできません。プロジェクトモジュールを解決できないためです。どのようにベンダーの依存関係を強制することができますか?

+0

これは私にはあいまいな質問です。何を使っていますか? 1.5以上でサポートされる 'vendor'ディレクトリを試してみたことがありますか? – squiguy

+0

@スイキー編集。もっと理にかなってほしい。 – AJcodez

+2

これはベンダーに使用するツールで行う必要があります。 godepが欠落しているパッケージを列挙できるかどうかはわかりませんが、 'govendor'や' glide'のようなものはそれを使うのに使うことができます。あなたがコミット、プッシュなどで何かをチェックしたいなら、それはgitフックのためのものです。 – JimB

答えて

1

ビルダーがパッケージに対して$GOPATHをスキャンしないようにする方法はありません。依存関係の管理には、あまり良いフローを使用していないようです。私はあなたに売り手としてglideを使うことをお勧めします。

最も推奨ワークフロー:

  1. glide.yamlに依存関係の実際のリストを保管してください。
  2. glide.yamlの変更後にglide upを実行してください。すべての依存関係をvendorディレクトリにインストールし、固定パッケージバージョンを使用してglide.lockを生成します。 VCSにglide.lockをコミットします。 を手動で変更しないでください。glide.lock
  3. vendorディレクトリをVCSにコミットしないでください。
  4. glide.lockからvendorまで依存関係をインストールするには、CIまたはビルドサーバーでglide installを実行してください。
  5. ビルド。 glideglide.yamlGodeps.jsonを移行するためのコマンドを持っているので

godepからglideへの移行を容易に行うことができます。

関連する問題