golang快速从样板模板创建项目的CLI工具插件boilr的使用
Golang快速从样板模板创建项目的CLI工具插件boilr的使用
Boilr简介
Boilr是一个帮助您从样板模板快速创建项目的CLI工具。它解决了每次开始新编程项目时重复相同步骤的问题。
主要特性
- 无依赖 - Boilr是单个静态链接的二进制文件
- 完整的Golang模板功能 - 利用Golang强大的模板功能
- 简单的模板创建 - 创建样板模板非常简单
安装
Linux和OSX的二进制文件由Travis在每个版本自动构建。您可以直接下载它们或运行安装脚本。
快速开始
使用boilr help
获取可用命令列表。
下载模板
要从GitHub仓库下载模板,使用以下命令:
boilr template download <github-repo-path> <template-tag>
boilr template download tmrts/boilr-license license
下载的模板将保存到本地boilr
注册表中。
保存本地模板
要将文件系统中的模板保存到模板注册表,使用以下命令:
boilr template save <template-path> <template-tag>
boilr template save ~/boilr-license license
保存的模板将保存到本地boilr
注册表中。
使用模板
假设有一个Boilr模板具有以下目录结构:
.
├── project.json
├── README.md
└── template
└── LICENSE
以及以下project.json
上下文文件:
{
"Author": "Tamer Tas",
"Year": "2015",
"License": [
"Apache Software License 2.0",
"MIT",
"GNU GPL v3.0"
]
}
使用以下命令使用模板:
boilr template use <template-tag> <target-dir>
boilr template use license /workspace/tmrts/example-project/
用户将被提示如下:
[?] Please choose an option for "License"
1 - "Apache Software License 2.0"
2 - "MIT"
3 - "GNU GPL v3.0"
Select from 1..3 [default: 1]: 2
[?] Please choose a value for "Year" [default: "2015"]:
[?] Please choose a value for "Author" [default: "Tamer Tas"]:
[✔] Created /workspace/tmrts/example-project/LICENSE
[✔] Successfully executed the project template license in /workspace/tmrts/example-project
模板列表
需要帮助?发现错误?想要功能?
如果您想贡献、分享意见或提出问题,请随时提出问题。在这个阶段,用户反馈是最重要的,无论贡献多么小,我们都欢迎。
更多关于golang快速从样板模板创建项目的CLI工具插件boilr的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于golang快速从样板模板创建项目的CLI工具插件boilr的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
使用Boilr快速创建Golang项目模板
Boilr是一个简单高效的Golang项目模板工具,可以帮助开发者快速从预定义的模板创建项目结构,避免重复搭建项目框架的繁琐工作。
安装Boilr
# 使用go install安装
go install github.com/tmrts/boilr/cmd/boilr@latest
# 或者直接下载二进制文件
# 从GitHub releases页面下载对应平台的二进制文件
# https://github.com/tmrts/boilr/releases
基本使用
1. 初始化Boilr
boilr init
这会创建~/.boilr
目录用于存储模板。
2. 下载模板
Boilr支持从GitHub等地方下载模板:
# 下载官方示例模板
boilr template download github.com/tmrts/boilr-templates/golang-cli my-golang-cli
# 或者下载其他模板
boilr template download github.com/author/template-repo template-name
3. 列出可用模板
boilr template list
4. 使用模板创建项目
boilr template use my-golang-cli my-new-project
执行后会提示输入模板变量值,然后生成项目。
创建自定义模板
1. 创建模板目录结构
my-template/
├── template
│ ├── main.go
│ ├── go.mod
│ └── ...
└── metadata.yml
2. 编写metadata.yml
variables:
- name: "ProjectName"
description: "What is your project name?"
type: "string"
default: "my-project"
- name: "GoVersion"
description: "Which Go version to use?"
type: "string"
default: "1.21"
3. 在模板文件中使用变量
在模板文件中使用{{.VariableName}}
语法:
// main.go
package main
import "fmt"
func main() {
fmt.Println("Welcome to {{.ProjectName}}!")
}
4. 保存模板
boilr template save ./my-template my-golang-template
高级用法
条件语句
{{if eq .UseLogging "yes"}}
import "log"
{{end}}
循环语句
{{range .Dependencies}}
import "{{.}}"
{{end}}
预定义函数
Boilr提供了一些有用的函数:
lower
- 转换为小写upper
- 转换为大写title
- 首字母大写trim
- 去除空格
package {{lower .ProjectName}}
实际示例
1. 创建一个CLI项目模板
metadata.yml:
variables:
- name: "ProjectName"
description: "Project name"
type: "string"
default: "my-cli"
- name: "UseCobra"
description: "Use Cobra CLI library? (yes/no)"
type: "string"
default: "yes"
main.go.template:
package main
{{if eq .UseCobra "yes"}}
import (
"github.com/spf13/cobra"
)
func main() {
cmd := &cobra.Command{
Use: "{{.ProjectName}}",
Short: "A brief description of your application",
}
if err := cmd.Execute(); err != nil {
panic(err)
}
}
{{else}}
import "fmt"
func main() {
fmt.Println("Hello from {{.ProjectName}}!")
}
{{end}}
2. 使用模板
boilr template use my-cli-template new-cli-project
# 回答提示问题后生成项目
优点
- 节省时间 - 避免重复搭建项目结构
- 一致性 - 团队使用相同模板保证项目结构一致
- 灵活性 - 支持条件逻辑和变量替换
- 易于分享 - 模板可以轻松共享给团队成员
Boilr是Golang项目中提高开发效率的实用工具,特别适合需要频繁创建新项目或维护多个相似项目结构的团队。