24
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

社内リポジトリのサブディレクトリをgo getするにはrepo名に.gitをつける

Last updated at Posted at 2015-07-25

Github Enterpriseであれどこであれ、VCSにホストしているGoパッケージは、通常

go get <domain>/foo/bar

のようなremote import pathによりgo getすることができます。
しかし、この一般的なimport pathでは、go getしたいパッケージがサブディレクトリにあるとき、既定ドメイン(github.comなど)以外、つまり社内リポジトリなどでは、以下のようなエラーが発生します。

たとえば、<domain>/foo/barレポジトリのsub-dirディレクトリをgo getしたい場合、こうなります。

go get <domain>/foo/bar/sub-dir
package <domain>/foo/bar/sub-dir: unrecognized import path "<domain>/foo/bar/sub-dir"

これは、go getコマンドがimport pathからリポジトリとパスを判別できず、リソースに到達できないことによるものです。

(ここで諦めて<domain>/foo/bargo getしてもいいのですが、リポジトリトップに.goファイルを置かないプロジェクト構成の場合、no buildable Go source files エラーになります)

これを回避するためには、リポジトリ名の後にVCSを記入してあげます。というか、一般的なimport pathはこのVCS名を省略した形だということみたいですね。

go get <domain>/foo/bar.git/sub-dir

出典:go - The Go Programming Language

24
31
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
24
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?