概要
知らなかったので、忘れないうちにメモメモ。。。
以下のmattnさんのツイートで知りました。感謝。
go run でしか実行しないのであれば go:build ignore を書いておくと同じディレクトリに置く事もできます。 https://t.co/Tvej2csLQp pic.twitter.com/8yDOYTFFwe
— mattn (@mattn_jp) 2022年9月30日
ファイルの先頭に // +build ignore (と空行) を足しておくと go run file.go でしか実行出来なくなるので、誤って go build する事はなくなります。 #golanghttps://t.co/azvRZsJUsb
— mattn (@mattn_jp) 2018年1月9日
このやり方使ったら、ちょこっとしたサンプルなどを一つのディレクトリに何個もおくことができるので、これから利用します。
試してみる
$ tree . . ├── main1.go ├── main2.go └── Taskfile.yml 0 directories, 3 files
main1.go
//go:build ignore // // - https://twitter.com/mattn_jp/status/950629429805395968 // - https://twitter.com/mattn_jp/status/1575760585563639808 package main import "fmt" func main() { fmt.Println("main1") }
main2.go
//go:build ignore // // - https://twitter.com/mattn_jp/status/950629429805395968 // - https://twitter.com/mattn_jp/status/1575760585563639808 package main import "fmt" func main() { fmt.Println("main2") }
Taskfile.yml
version: '3' tasks: default: cmds: - cmd: go build ignore_error: true - cmd: go run main1.go - cmd: go run main2.go
実行すると以下のようになります。
$ task task: [default] go build package github.com/devlights/try-golang/examples/singleapp/multi_main: build constraints exclude all Go files in /workspace/try-golang/examples/singleapp/multi_main task: [default] go run main1.go main1 task: [default] go run main2.go main2
参考情報
try-golang/examples/singleapp/multi_main at master · devlights/try-golang · GitHub
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。