LoginSignup
11
10

More than 5 years have passed since last update.

GoのDockerで自動的にimport packageが入るからくり

Last updated at Posted at 2015-05-31

Goの公式Dockerで自動的に使用しているパッケージが入ったのでなんで?って思ってずーっと調べてた。
どんな大掛かりなからくりなんだろうと思って調べていたが、結局対象のGoアプリディレクトリで
$ go get -v -d
を使うと使用するパッケージが自動で入るようだった。
フラグつけるだけだったとは・・・。

もうちょっと深く調べた所、
-vはgo getのフラグには無く、go buildのフラグでした。

-v
print the names of packages as they are compiled.

(go buildのフラグはgo getでも使える)

go get [-d] [-f] [-fix] [-t] [-u] [build flags] [packages]

go buildで指定すると使用している外部パッケージが表示された。
buildの場合、パッケージのダウンロードはされなかった。

でも、「go getの時に使うと自動で必要パッケージダウンロードするよ〜」みたいなことは書いてないな〜

ちなみに-dはダウンロードだけでインストールはしないというフラグ。

今まで一つ一つ使用するパッケージを$ go get package_nameとしていたのでこれからはこれ使おうと思います。

2015/07/18追記

package mainが書かれているファイルがある階層で
$ go get
を実行するだけでいいようです。
-vオプションはログを表示するオプションでした。

また、package mainが書かれているファイルがカレントに無い場合、
(カレントより深い階層にpackage mainが書かれているファイルがある場合)
$ go get ./...
を実行するとすべてのパッケージが入ります。
ログを表示する場合は$ go get -v ./...かな。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10