📝
gonewを使ってみた
Go 公式が新しいツールであるgonew
を発表していたので少し触ってみました。
Gonew とは
gonew とは事前に作成しておいたテンプレートをもとに新しい Go のプラジェクトを作成する事のできるツールです。この記事を書いている時点ではまだ機能等を大幅に縮小したプロトタイプのみです。これからのユーザーの反応をもとに 機能の追加などを行っていくんだと思います。
参考
使ってみる
インストール
go install golang.org/x/tools/cmd/gonew@latest
でインストールできます。
実行
とりあえず公式の用意しているテンプレートをもとに使ってみる。
gonew golang.org/x/example/hello github.com/aqyuki/hello
gonew
はgonew <template URL> <Package name>
という形式で実行できます。<template URL>
の部分に元となるリポジトリの URL を<Package name>
のところに自分の利用したいパッケージ名を指定します。
生成されたファイルを確認
生成されたファイルは以下のとおりです。
- reverse
- reverse.go
- reverse_test.go
- go.mod
- hello.go
- LICENSE
これは、ここに書かれているものと同じファイルとディレクトリです。また、go.mod ファイルの中は以下のようになっていました。
go.mod
module github.com/aqyuki/hello
go 1.19
自動的にモジュール名が自動で変更されるのはいいですね。
自分用の Go のテンプレートを作ってみた (2023/08/02 追記)
以下のような構造でテンプレートを作ってみました。テンプレートを作るのはそんなに難しくなく、いつものようにgo mod init
でプロジェクトを開始したあとgonew
で作成したときに含めたいファイルを追加するだけでした。
- cmd
- main.go
- .editorconfig
- .gitattributes
- .gitignore
- go.mod
- Makefile
- README.md
- staticcheck.conf
このリポジトリでは、
go mod init github.com/aqyuki/templatego
を実行し、Goのモジュール機能を初期化しているのですがこのリポジトリをもとに
gonew github.com/aqyuki/templatego <package name>
を実行しても問題なくgo.mod
のパッケージ名が上書きされていました。
今回作成したテンプレートはここで公開しているので良ければ使ってみてください。
まとめ
- 今回公開されたのはあるリポジトリをもとに新しい Go プロジェクトを開始することのできる
gonew
というツール - まだ、プロトタイプのためこれから仕様が変わっていく可能性がある
- テンプレートを自分で作成してみたが特に苦労することもなく作成することができた。
- 使ってみた感じ、かなり便利そう
Discussion