エンジニアはこわくない

雑記とかエンジニアっぽい内容を好きなように書く場所

golangのversion1.9から標準でvendorディレクトリを除外してくれるようになった


スポンサーリンク

f:id:tsujitaku50:20170224131252j:plain

今更かよ・・って感じのタイトルですが笑

go vet ./... | grep -v vendor

のようなコマンドを自分のシェルスクリプトから見つけたので

「そういえば1.9から標準でvendorディレクトリを

除外してくれるようになったからgrepしなくていいんだ」

ということに気づいて、ついでに書きたいなと思ったので書きます。

vendorディレクトリが含まれちゃう問題

前にこちらの記事でも触れていますが

golangでvetコマンドやtestコマンドを実行したときにvendorディレクトリを除外する方法 - エンジニアはこわくない

golangのコマンドで

go vet ./...

などを実行すると、

依存パッケージが入っているvendorディレクトリも対象になってしまいます。

しかしvendorディレクトリは依存パッケージなので自分が書いたコードではありません。

vetコマンドなどを実行したときはvendorディレクトリを無視して欲しいので

エンジニアは各々

go vet ./... | grep -v vendor

などの対策をしていました。
(あくまで一例で他にもやり方は色々あります。)

めんどくさいなーと常々思っていたのですが

golangのバージョン1.9から標準でvendorディレクトリは無視してくれるようになりました!

バージョン1.9から標準でvendorディレクトリを無視してくれるように!

リリースノートに載ってます。
Go 1.9 Release Notes - The Go Programming Language

Vendor matching with ./... By popular request, ./... no longer matches packages in vendor directories in tools accepting package names, such as go test. To match vendor directories, write ./vendor/....

やっぱり要望が多かったみたいですね!

これでより快適にgolangコマンドを実行できますね。

おわり!!