Goので外部パッケージをimportする

以下のようなパッケージ構成のGoのプロジェクトを考えます。

$GOPATH
 ├── handler
    │   └── index.go
    ├── main.go
    └── middleware
        └── log.go

これだと main.go で localに作成した handlermiddleware を import しようとするときに、 Unresolved reference エラーが発生して外部のpackageをimportできません。

正しくはこちらです。

$GOPATH
└── src
    ├── handler
    │   └── index.go
    ├── main.go
    └── middleware
        └── log.go

外部パッケージをimportするときは $GOPATH/src 配下をROOTとしてプロジェクトを切ります。