👏

GoNewコマンドでプロジェクトテンプレートを取得してみる

2023/08/02に公開

Goにテンプレート機能 gonew が公開されたのでさっそく試してみました。

The Go Blog

概要

Goでは新しいプロジェクトを作成する際にはgo mod init {Modules名} もしくはリポジトリのクローンから作成します。

この度、gonewを利用することで公開済テンプレートを元にプロジェクトを作成できるようになりました。

gonew {Template名} {Modules名} 

なお、現時点では実験段階のようです。

Install

まずは新たツールgonewをインストールします。

go install golang.org/x/tools/cmd/gonew@latest

実行

適当な作業ディレクトリで以下を実行します。

gonew golang.org/x/example/helloserver example.com/myserver

myserverプロジェクトが作成されました。

myserver
├── go.mod
├── LICENSE
└── main.go

モジュール名を確認すると指定した"example.com/myserver"になっています。

go.mod
module example.com/myserver

go 1.19

gonew golang.org/x/example/helloserverと指定をしない場合はモジュール名がそのままでした。

感想

公開されたプロジェクトを元に新しいプロジェクトを作成できる機能gonew
簡単に試したい時などにGitなどでわざわざクローンしなくてもいいのは手軽でよさそうです

まだ実験段階なそうなのでフィードバック募集中のようです
ぜひ試してみてください

https://github.com/golang/go/discussions/61669

そのほか提供Sample

https://pkg.go.dev/golang.org/x/example/hello

https://pkg.go.dev/golang.org/x/example/helloserver

https://pkg.go.dev/golang.org/x/example/outyet

https://github.com/ServiceWeaver/template

https://github.com/GoogleCloudPlatform/go-templates

参考

https://go.dev/blog/gonew

Discussion