0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Go Modules:基本の使い方と活用方法

Posted at

はじめに

Go Modulesは、Go言語でプロジェクトを管理するための依存関係管理ツールです。
従来の$GOPATHに依存せず、プロジェクトごとに依存関係を管理することができ、モダンなGo開発には欠かせない機能となっています。


Go Modulesとは?

Go Modulesは、以下の特徴を持つ依存関係管理ツールです。

  • プロジェクトごとに依存関係を管理できる。
  • $GOPATHに依存せずに、任意のディレクトリで開発が可能。
  • バージョン管理が簡単に行える。
  • 他の開発者と同じ環境を再現しやすい。

Go Modulesのメリット

  • プロジェクトごとに依存関係を分離できるため、環境の競合を防げる。
  • 任意のディレクトリで Go プロジェクトを作成 / 管理できる。
  • バージョン管理が容易になり、同じバージョンの依存関係を再現できる。

Go Modules の基本コマンド

1. プロジェクトの初期化

新しいGo プロジェクトを作成する場合、go mod initを使って Go Modulesを初期化します。

mkdir myproject
cd myproject
go mod init github.com/username/myproject
  • github.com/username/myprojectは、モジュール名であり、一般的に GitHubのリポジトリパスを指定します。
  • 実行後、go.modファイルが生成されます。

2. 依存関係の追加

Go Modulesでは、外部パッケージをインポートすると自動で依存関係が追加されます。

例として、github.com/gorilla/mux を使ってみます。

package main

import (
    "fmt"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, "Hello, Go Modules!")
    })

    http.ListenAndServe(":8080", r)
}

依存関係を追加するには、以下のコマンドを実行します。

go mod tidy
  • go mod tidyは、go.modとgo.sumを自動的に更新します。
  • go.sumファイルには、依存関係のチェックサムが記録され、依存関係の一貫性が保たれます。

3. 依存関係の更新

依存関係を最新バージョンに更新したい場合は、以下のコマンドを実行します。

go get -u github.com/gorilla/mux
  • -uフラグを付けることで、マイナーバージョンの更新を行います。
  • 最新のパッチバージョンのみを取得する場合は、-u=patchを指定します。
go get -u=patch github.com/gorilla/mux

4. 依存関係の削除

不要になった依存関係は、自動的には削除されません。
以下のコマンドを実行することで、使われていないパッケージを削除できます。

go mod tidy
  • go mod tidyは、現在のプロジェクトで使用されていない依存関係を削除し、go.modとgo.sumを整理します。

Go Modules のバージョン管理

1. 特定のバージョンを指定する

依存関係のバージョンを指定してインストールすることも可能です。

go get github.com/gorilla/mux@v1.8.0
  • @v1.8.0のように、バージョンタグを指定します。
  • 特定のコミットを指定することもできます。
go get github.com/gorilla/mux@<commit-hash>

2. バージョンの確認

依存関係のバージョンを確認するには、以下のコマンドを使用します。

go list -m all
  • go list -m allは、go.modに記載されているすべての依存関係とそのバージョンを表示します。

プロジェクトの実行とビルド

1. 実行

Go Modulesを使ったプロジェクトは、以下のコマンドで実行できます。

go run main.go

2. ビルド

バイナリを生成するには、go buildを使用します。

go build -o myapp main.go
./myapp
  • -o オプションで、生成するバイナリの名前を指定します。

まとめ

項目 説明
Go Modules プロジェクトごとの依存関係管理ツール。$GOPATH に依存しない。
go mod init 新しいプロジェクトを初期化する。
go mod tidy 依存関係の追加、削除、および整理を行う。
go get 依存関係のインストール・更新・バージョン指定が可能。

依存関係の管理が楽になり、モダンな 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?