Edited at

Go1.11でカスタムパッケージを追加する方法

Go1.11ではModulesという機構が追加され、go mod コマンドでmodulesを管理することができる。

もうGoPath直下にディレクトリを切らず、どこでも好きなところに置けます。

Modulesの使い方は様々な記事で紹介されていますが、

1.export GO111MODULE=on

2.go mod init

これだけです。

あとは、go buildでコンパイルすればプログラム内のimportに記載されているパッケージが自動的にインストールされて、go.modgo.sumに追記されます。

ちなみにバージョン等を指定したい場合は下記の場所を書き直せばいいぽい


go.mod

require (

//ここ? 
github.com/XXXXX
)

んで、フォルダを切って新しいパッケージを宣言した場合、相対パスでimportできなかった

|-main.go    //package xxx

|-sub
|-sub.go //package sub


sub.go

//パッケージ名

package sub

import (
...


このような場合、go.modにはmoduleにメインのパッケージ「XXX」と書き、そこからの相対パスをimportに使用する。


go.mod

//mainのパッケージ名

module XXX
require (
github.com/XXXXX
)


main.go

package xxx

import (
"xxx/sub"
)


当たり前のことだが、カスタムパッケージ?ってググってもあまりGo1.11で出てこなかったので覚書程度に記載しておきます。