Go初心者向けに始めた記事の第2回になります。
今回はGoのモジュールを管理するgo modについて解説します。
この記事は、初学者向けに現場でGoの開発ができるようになることをコンセプトに書いております。私はGoを仕事で2年半経験しておりまして、そこで学んだ知識を少しでも読者に提供できたらと思っております。
Goのモジュール
Goのライブラリにはリポジトリ、モジュール、パッケージの3つの概念を使って管理されています。
リポジトリはGitHubでお馴染みのソースコードを管理するリポジトリのことです。モジュールはGoのライブラリあるいはアプリのrootになり、リポジトリに保存されています。パッケージはフォルダのことで、全てのソースコードがパッケージに属している。モジュール1個が複数のパッケージから構成されています。
go modとは
go mod コマンドはモジュール管理をするためのコマンド。「go mod init {モジュールのパス}」を実行することで、go.modを作成する。このコマンドを実行したディレクトリがモジュールのルートになります。
またモジュールに関わるコマンドとして、「go get」「go install」「go mod tidy」があります。
「go get」はモジュールの依存関係を追加します。「go install」でモジュールをバイナリでインストールします。「go mod tidy」でソースファイルを解析して、必要なモジュールのダウンロードや、不要なファイルの削除をします。
実際にgo.modを作ってみる
それでは実際にgo.modを作成して、モジュールをインストールしてみましょう。
今回も前回同様に以下のリポジトリを使用して実行していきます。
go mod initを実行。モジュールパスについては「github.com/GitHubユーザ名/リポジトリ名」で作成が一般的。
root@3219d1301022:/work# go mod init github.com/SND1231/go-column
go: creating new go.mod: module github.com/SND1231/go-column
go: to add module requirements and sums:
go mod tidy
「go get」でgoogle/uuidというuuidを生成してくれるモジュールをインストールする。
root@3219d1301022:/work# go get github.com/google/uuid
go: downloading github.com/google/uuid v1.3.0
go: added github.com/google/uuid v1.3.0
# go mod tidyを実行する。出力はなし
root@3219d1301022:/work# go mod tidy
hello.goを以下に編集する
package main
import (
"fmt"
"github.com/google/uuid"
)
func main() {
uuID, _ := uuid.NewUUID()
fmt.Println("Hello world!!", uuID)
}
hello.goを実行すると、「Hello world!! {uuid}」になることを確認できます。
root@3219d1301022:/work# go run hello.go
Hello world!! e5f24439-f133-11ed-b043-0242c0a80002
最終的には以下のリポジトリの状態になります。
まとめ
今回はGoのモジュールを管理する方法を解説してきました。
次回はmakefileというプロダクトをビルドしたり、テストするなどコマンドを記述するファイルについて解説をしていますので、興味あればぜひ読んでください。
「Go開発者への道」の記事以外にもGoについて書いた記事がございますので、もし興味がありましたら、おすすめ記事も見てもらえたらと思います。
【次の記事】
【おすすめ記事のリンク】
コメント