Command
go get
go.modファイルにあるモジュールの依存関係を更新し、パッケージをビルドしてインストールする。 モジュールとバージョンが解決できたら、require命令を追加、変更、削除する。 go.modのrequireディレクティブの管理に重点を置いている。
go get
# a specific module
# 暗黙的に@upgrade queryが使われる
# go get -d golang.org/x/net@upgrade
go get -d golang.org/x/net
# all modules
go get -d -u ./...
go get -d -u all
# a specific version
go get -d golang.org/x/text@v0.3.2
# a specific branch name or revision
go get -d golang.org/x/text@master
# @none suffixでモジュールの削除ができる
go get golang.org/x/text@none
サポートされているフラグ
-d- ビルドやインストールを行わないように指示する
-dなしでgo getを使うことは非推奨です。- Go1.18からデフォルトで有効になる
-u- パッケージからインポートされたパッケージを提供するモジュールをアップグレードするように指示する
-u=patch- 最新のパッチバージョンにアップグレードする
-t- 指定されたパッケージのテストを動作させるために必要なモジュールも含めるように指示する
-insecurehttpのような安全でないスキーマから取得することを許可する- 非推奨
go install
パッケージをビルドしてインストールする。実行ファイルは$GOBINで指定されたディレクトリにインストールされる。$GOROOTにある実行可能ファイルは$GOBINではなく、$GOROOT/binまたは$GOTOOLDIRにインストールされる。
Go1.16以降、引数にバージョンのさフィクスがある場合、モジュールを考慮したモードでパッケージをビルドする。このとき、カレントディレクトリや親のディレクトリにgo.modがある場合、go.modを無視する。
go install
# go install [build flags] [packages]
go list -m
mフラグでモジュールをリストアップする。
go list -m
# go list -m [-u] [-retracted] [-versions] [list flags] [modules]
go list -m all
go list -m -versions example.com/m
go list -m -json example.com/m@latest
サポートされているフラグ
-f- フラグでフォーマットテンプレートを適用する。
-u- 利用可の名アップグレードに関する情報を追加する
-versions- そのモジュールのすべての既知のバージョンをセマンティックバージョニングに従って順番にリストアップする
retractedフラグが指定されない場合、撤回されたバージョンは一覧から省かれます
go mod download
指定されたモジュールをモジュールキャッシュにダウンロードします。
引数なしの場合、メインモジュールのすべての依存関係を適用される。
goコマンドは必要に応じて自動的にモジュールをダウンロードします。モジュールキャッシュの事前ロードやプロキシが提供されるデータのロードに有用。
go mod download
# go mod download [-json] [-x] [modules]
go mod download
go mod download golang.org/x/mod@v0.2.0
サポートされているフラグ
-json
ダウンロードされた各モジュールについてのJSONオブジェクトを標準出力に出力する-x
ダウンロードが実行するコマンドを標準エラーに出力する
go mod edit
go.modファイルの編集や書式設定のためのインターフェース。
go mod edit
# go mod edit [editing flags] [-fmt|-print|-json] [go.mod]
go mod edit -replace example.com/a@v1.0.0=./a
go mod edit -json
サポートされているフラグ
-modulego.modファイルのモジュールの行を変更する-go=version動作に期待するGoのバージョンをセット-require=path@version与えられたモジュールをrequireディレクティブに追加・削除- 記載の上書きを行うだけなので、必要な変更をおこなう
go getを利用すべき
- 記載の上書きを行うだけなので、必要な変更をおこなう
exclude=path@versionexcludeディレクティブに追加・削除をおこなう-replace=old=new与えられたペアのreplaceディレクティブに追加する-dropreplace=old与えられたモジュールパスのreplaceディレクティブをドロップするretract=versiondropretract=versionretractディレクティブに追加・削除をおこなう。ただしコメントは記載できない出力方法の操作
-fmt他の変更を加えずにgo.modファイルの再フォーマットをおこなう。ほかのフラグが指定されていない場合にだけ利用できる-printgo.modへの書き込みをする代わりに標準出力する-jsongo.modへの書き込みをする代わりにjson形式で標準出力する
go mod graph
replace適用後のrequireディレクティブのテキスト形式を表示する。
各行はモジュールのバージョンと依存関係をもつグラフのエッジを表現する。
go mod graph
# go mod raph [-go=version]
go mod init
カレントディレクトリに新しいgo.modファイルを初期化して書き込む。
vendoringツールの設定ファイルが存在する場合、その設定ファイルからモジュールディレクティブをインポートする。
go mod init
# go mod init [module-path]