Golangを使用してプログラムのすべての依存関係ファイルを取得する方法


90

私はgolangでプログラムを作成し、コードを完了した後、このコードを他のPCまたはVMで実行したい場合、すべての依存関係パッケージファイルを取得しません。すべての依存関係ファイルを取得するにはどうすればよいですか?

go 

回答:


10

godep saveプログラムを完了するローカルPCで使用できます。godep saveは、すべての依存関係ファイルを収集します。他のPCに移動するときは、コードを含むGodepフォルダーをコピーするだけで、問題が解決します。


7
一部の人には明らかかもしれませんが、私はこれを掘り下げなければなりませんでした。Goにgodepまたはdepパッケージをインストールする必要があることがわかりました。このためのGithubstieはここにあります:github.com/tools/godep
Patratacus

212

go get -d ./...プロジェクトのディレクトリから実行して、すべてのgo-gettable依存関係をダウンロードできます。
または、すべてのsrcサブディレクトリをGOPATHから宛先マシンにコピーします。
...は特別なパターンで、再帰的に下がるように指示します。


1
コードを実行/変更する必要がある場合、パッケージが見つかりません。

1
go get <package>でパッケージを取得できることは知っていますが、プログラムが多くのパッケージを使用する場合、非常に時間がかかり、困難です。

3
-tは依存関係のテストもインストールします
honzajde 2017

3
@AlbertoSchiabel...は特別なパターンです。再帰的にダウンするように指示します。回答を更新しました
RoninDev 2017年

ありがとう@RoninDev!最初はあなたの答えを編集./.しようとしていました、なぜなら私のPCであなたにコマンドを試した後、それはちょっと立ち往生したからです(そして今、goファイルの再帰的検索はかなり高価になる可能性があるので理由がわかりました)、しかしそれから私はそれがより良いことに気づきました最初に尋ねます。ありがとう!
Alberto Schiabel 2017年

51

試してみてください

go list -f '{{ join .Imports "\n" }}'

または

go list -f '{{ join .Deps "\n" }}'

2番目はすべてのサブ依存関係をリストし、最初は直接インポートされたパッケージのみをリストします。


22

以下のコマンドは私のために機能し、すべての依存関係をダウンロードします。

go get -u -v -f all

時間がかかる !!!プロジェクトで使用したことのないパッケージをダウンロードします。
ユセフェリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.