6.3 Goプロジェクトのライフサイクル

Goのプロジェクトを開始する場合は以下の2つを実行します。各プロジェクトは1つのモジュールで構成します1

  • Gitのリポジトリを作る2

  • モジュールを初期化する

go mod init を実行することで、モジュールを作成できます。ディレクトリにGitのメタデータが存在しており、かつモジュール名を省略した場合は、メタデータからモジュール名が補完されます。

$ mkdir ./hello
$ cd ./hello
$ go mod init github.com/myname/hello
go: creating new go.mod: module github.com/myname/hello

外部にライブラリとして配布しない場合はgithub.comなどを含まない名前でも構いません。

$ mkdir ./hello
$ cd ./hello
$ go mod init my-command
go: creating new go.mod: module my-command

プロジェクトの準備は以上で終了です。

ある程度コードが動くようになったら、バージョン情報をタグとして付与してリポジトリにpushします。

$ git tag v1.0.0
$ git push origin main --tag

リポジトリにpushしたモジュールはgo getでタグとして付与したバージョンを指定することで取得できます。ライブラリも実行ファイルもこの方法で配布できます。

モジュールのバージョンや他のモジュールへの依存を追加する方法は、「6.2  Go Modulesで開発環境のパッケージを管理する 」を参照してください。