Golang v1.11.x で Go Modules を扱えるようにする

アプデは慎重にやりたいので、
Golang のアプデと、
Go Modules の設定をそれぞれ順番にやりたい。

という人向け。

まず Go Modules を扱えるようにする

$ export GO111MODULE=on
# zsh の場合は .zshrc
$ vi .bashrc

# 最終行に追加
export GO111MODULE=on

プロジェクトを移動して Go Modules コマンドを叩く

$ cd /var/www/go/src/path/to/your/project
$ cp . /path/to/your/project
$ cd /path/to/your/project

# 勝手に dep で管理してたパッケージを良い感じにしてくれる
$ go mod init

go: creating new go.mod: module github.com/psychedelicnekopunch/go-sample
go: copying requirements from Gopkg.lock

# モジュールを整理する
$ go mod tidy

# dep 関連で使用してたファイルと vendor ディレクトリを削除
$ rm Gopkg.lock
$ rm Gopkg.toml
$ rm -rf vendor

ファイルを書き換える

自分のプロジェクトのファイルを import する時の記述が変わる。

// 今までの import 指定例
import "/your/project/psychedelicnekopunch/go-sample/xxx"

↓

// Go Modules 使用した時の指定例
import "github.com/psychedelicnekopunch/go-sample/xxx"

自分のプロジェクトのモジュール名を確認したい時

go.mod に書いてある。
「module xxxxx」がモジュール名。

$ cat go.mod

module github.com/psychedelicnekopunch/go-sample

go 1.12

require (
	github.com/xxxxxx/xxxxx v0.0.1
)

関連投稿