モジュールを公開する
モジュールを他の開発者が利用できるようにするには、Goツールから見えるように公開します。モジュールを公開すると、そのパッケージをインポートする開発者は、go getなどのコマンドを実行して、モジュールへの依存関係を解決できるようになります。
注: 公開したモジュールのタグ付きバージョンは、公開後に変更しないでください。モジュールを使用する開発者にとって、Goツールはダウンロードされたモジュールを最初のダウンロードコピーと照合して認証します。2つが異なる場合、Goツールはセキュリティエラーを返します。以前に公開したバージョンのコードを変更するのではなく、新しいバージョンを公開してください。
こちらも参照
- モジュール開発の概要については、「モジュールの開発と公開」を参照してください。
- 公開を含む高レベルのモジュール開発ワークフローについては、「モジュールのリリースとバージョン管理ワークフロー」を参照してください。
公開手順
モジュールを公開するには、次の手順を実行します。
-
コマンドプロンプトを開き、ローカルリポジトリ内のモジュールのルートディレクトリに移動します。
-
go mod tidyを実行します。これにより、モジュールが蓄積した不要な依存関係がすべて削除されます。$ go mod tidy -
すべてが機能していることを確認するために、
go test ./...を最後に実行します。これにより、Goテストフレームワークを使用するために記述した単体テストが実行されます。
$ go test ./... ok example.com/mymodule 0.015s -
git tagコマンドを使用して、プロジェクトに新しいバージョン番号でタグを付けます。バージョン番号には、このリリースでの変更の性質をユーザーに知らせる番号を使用してください。詳細については、「モジュールのバージョン番号付け」を参照してください。
$ git commit -m "mymodule: changes for v0.1.0" $ git tag v0.1.0 -
新しいタグをオリジンリポジトリにプッシュします。
$ git push origin v0.1.0 -
go listコマンドを実行して、Goに公開するモジュールに関する情報でモジュールのインデックスを更新するように促し、モジュールを利用できるようにします。Goプロキシに
GOPROXY環境変数を設定するステートメントをコマンドの前に置きます。これにより、リクエストがプロキシに到達することが保証されます。$ GOPROXY=proxy.golang.org go list -m example.com/mymodule@v0.1.0
モジュールに関心のある開発者は、他のモジュールと同様に、そこからパッケージをインポートしてgo getコマンドを実行します。最新バージョンに対してgo getコマンドを実行することも、次の例のように特定のバージョンを指定することもできます。
$ go get example.com/mymodule@v0.1.0