| この記事の要点 |
|---|
|
Go の開発作業は、go コマンドという単一のツールを通して行う。依存パッケージの管理、ビルド、テスト、コード生成まで、ほとんどの操作が go サブコマンド という形にまとまっているのが特徴である。このページでは、よく使う Go のコマンドを役割ごとに一覧し、それぞれの詳しい使い方は個別記事へ案内する。
まずは全体像をつかむため、代表的なコマンドを表にまとめる。詳細リンクがあるものは、構文・オプション・具体例をそのリンク先で個別に解説している。
主要コマンド一覧
| 分類 | コマンド | 概要 | 詳細 |
|---|---|---|---|
| モジュール | go mod init |
新しいモジュールを作成し、依存情報を管理する go.mod ファイルを生成する。 |
go mod init |
| モジュール | go mod tidy |
ソースを走査し、不足する依存の追加と不要な依存の削除を行って go.mod / go.sum を整える。 |
go mod tidy |
| モジュール | go mod download |
go.mod に記載された依存モジュールをローカルのキャッシュへダウンロードする。 |
go mod download |
| ビルド | go build |
パッケージをコンパイルして実行可能ファイルを生成する。配布や本番デプロイ用のバイナリ作成に使う。 | go build |
| ビルド | go run |
バイナリを残さずにソースをコンパイルしてその場で実行する。動作確認や小さな試作に向く。 | — |
| テスト | go test |
_test.go ファイルのテスト関数を実行する。ベンチマークやカバレッジ計測にも対応する。 |
— |
| 概念 | package |
コマンドではなく、Go のコードをまとめる単位を表すキーワード。各ファイル先頭の package 名 宣言で所属を示す。 |
go package |
| コード生成 | protoc |
Protocol Buffers の定義から Go のコードを生成する外部コンパイラ。go generate と組み合わせて使うことが多い。 |
protoc |
なお go run と go test は Go 開発で日常的に使う基本コマンドのため概要のみ掲載している。表の protoc は go のサブコマンドではなく外部ツールだが、Go のコード生成でよく登場するため一覧に含めた。
go modules 関連のコマンド
Go の依存管理は モジュール(modules) という仕組みで行う。プロジェクトのルートに置く go.mod がモジュール名と依存ライブラリ・バージョンを記録し、go.sum が各依存の検証用ハッシュを保持する。これらを操作するのが go mod 系のサブコマンドである。
|
# 新規モジュールを作る(go.mod を生成) go mod init example.com/myapp
# 依存を整理する(不足を追加・不要を削除) go mod tidy
# 依存モジュールをキャッシュへ取得する go mod download |
おおまかな流れとしては、最初に go mod init でモジュールを作成し、開発を進めながら go mod tidy で依存を整える、という使い方が基本になる。go mod download は、CI やコンテナのビルドなどであらかじめ依存を取得しておきたい場面で使うことが多い。それぞれの細かいオプションや挙動は上表の各詳細リンクを参照してほしい。
ビルド・実行・コード生成のコマンド
ソースを動かす段階では、用途に応じて go build と go run を使い分ける。
|
# 実行可能ファイルを生成する go build
# ビルドせずにその場で実行する go run main.go
# テストを実行する go test ./... |
配布や本番に置くバイナリが必要なら go build、手元での動作確認なら go run、品質確認には go test という対応になる。go build の出力先指定やビルドオプションは詳細記事で扱う。
コード生成では、go generate がソース内のコメントに書いた生成コマンドをまとめて実行する仕組みを提供する。代表例が Protocol Buffers で、.proto 定義から Go の型を作る際に外部コンパイラ protoc を呼び出す。
|
# .proto から Go コードを生成する(例) protoc --go_out=. ./api/service.proto |
生成系は別途プラグインのインストールが必要になるなど準備があるため、具体的な手順は protoc の記事で解説する。Go のコードを package 単位でどう構成するかについては go package を参照するとよい。
よくある質問(FAQ)
Q. go build と go run は何が違いますか?
A. go build は実行可能ファイル(バイナリ)を生成して残すのに対し、go run はバイナリを残さずにその場でコンパイルして実行します。配布や本番デプロイには go build、手元での動作確認や試作には go run が向いています。詳しくは go build を参照してください。
Q. 利用できるコマンドの一覧はどこで確認できますか?
A. 端末で go help を実行すると、利用できるサブコマンドの一覧が表示されます。個別のコマンドについては go help build のように続けて指定すると、そのコマンドの説明が確認できます。コマンドの種類や挙動は Go のバージョンによって差があるため、利用している環境の公式ドキュメントも併せて確認してください。
- エラー一覧
- コマンド・ディレクティブ一覧
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38