LoginSignup
0
1

More than 3 years have passed since last update.

Go Modules(vgo)について

Last updated at Posted at 2020-10-21

Go Modulesとは

Goの依存関係管理ツールです。一昔前まではdepが多く使われていましたが、Go1.11から導入され、多く使われているそうです。

ちなみに、Go1.13から本格的に導入で、Go1.11~1.12は移行期ということなので該当している場合は、バージョンアップします。また、下記のコマンドで環境変数の確認をし、GO111MODULEonにすることでも使えるようになるようです。

$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
.
.
.  //下に続く

Go Modulesの使い方

実際にプロジェクトを作るところから一連の流れに沿っていきます。まず、任意のディレクトリで任意のディレクトリで新規にプロジェクトを作成します。

また、Go Modulesを使う場合、GOPATH外でも置くことは出来ますが、保存先はGOPATH下になるそうです。→参考記事
※推奨は$GOPATH/src/github.com/username/任意プロジェクト

(自分の場合: $GOPATH/src/github.com/username/testproject

mkdir $GOPATH/src/github.com/username/testproject

作成したプロジェクトに移動しgo mod initを実行します。

go mod init github.com/username/testproject

testprojectと同じ階層にgo.modというファイルが生成されると思います。

go.mod
module github.com/username/testproject

go 1.**  //各々のバージョン

ここにパッケージなどのgo getによるインストールが記させていきます。試しにGoのフレームワークである、Ginをインストールしてみます。

go get github.com/gin-gonic/gin

go.modファイルに追記があるはずです。適宜、他ファイルでインポートして使用します。また、新しくgo.sumというファイルも生成されます。ここに依存関係が記録されていきます。

go.mod
module github.com/username/testproject

go 1.**  //各々のバージョン

require github.com/gin-gonic/gin v1.6.3
go.sum
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14=
.
.
.  //下に続く

パッケージの削除

使用されていないパッケージは下記のコマンドで削除できます。また、そういった場合はエラーで教えてくれます。

go mod tidy github.com/gin-gonic/gin  //例

最後に

今回はGo Modulesについて最低限目ものして残しておきました〜。次はGoの基本型について何回かに分けて更新していこうと思います!ちょくちょく別の内容でもメモ残していくと思いますが!!

0
1
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
0
1