11 个版本
0.2.6 | 2019 年 12 月 3 日 |
---|---|
0.2.5 | 2019 年 11 月 30 日 |
0.2.3 | 2019 年 4 月 24 日 |
0.2.1 | 2019 年 3 月 8 日 |
0.1.3 | 2019 年 2 月 22 日 |
#2735 在 命令行工具
34 每月下载量
11MB
768 行
包含 (DOS 可执行文件, 5.5MB) distribute/windows/cargo-bullet.exe,(DOS 可执行文件, 5.5MB) cargo-bullet.exe,(Mach-o 可执行文件, 5MB) distribute/darwin/0.2.5/cargo-bullet,(Mach-o 可执行文件, 5MB) distribute/darwin/0.2.5/luban
子弹
子弹是一个项目样板生成器
安装
linux/unix/mac
- 安装 rust: curl https://sh.rustup.rs -sSf | sh
- 安装 bullet: cargo install cargo-bullet
- 检查版本: cargo bullet --version
已知问题
OS | 问题 | 解决 |
---|---|---|
centos | 找不到 OpenSSL 目录 | yum install openssl-devel |
ubuntu | 链接器 cc 未找到 |
sudo apt-get install build-essential |
ubuntu | 找不到 OpenSSL 目录 | sudo apt install libssl-dev & sudo apt instll pkg-config |
windows
- 安装 rust: 按照以下 rust-lang
- 安装 bullet: cargo install cargo-bullet
- 检查版本: cargo bullet --version
- 请安装 visual studio 以获取 msvc 编译器
从源安装
- 安装 rust
- git clone https://github.com/thegenius/bullet.git
- cd bullet
- cargo build --release
- ./target/release/bullet.exe --version
用法
cargo bullet --config=<config_file> --template=<template_dir> --out=<out_dir>
配置文件示例: build.toml
group = "example"
project = "test"
[ext]
my_content = "This is my content"
项目结构示例: templates/structure/structure.toml
project_structure = [
{item_path="{{ context.group }}.{{context.project }}", item_file = "hello.txt", item_tmpl="hello.txt.tmpl", item_type="static"}
]
项目模板示例: templates/template/hello.txt.tmpl
hello {{ context.project }} {{ context.ext.my_content }}
生成项目
cargo bullet -c build.toml -t templates -o output
idea
在开发项目时,我们总是要编写许多样板代码、配置等,因此可以节省您的时间。
- 创建项目模板。
- 使用 yaml 或 json 或 toml 配置项目。
- 生成项目
对于模板开发者
模板结构
root |-- structure/
|-- |-- structure.toml
|-- template/
|-- |-- hello.tmpl
|-- |-- world.tmpl
|-- bullet.toml
结构文件
- project_structure 是根元素
- 子元素必须具有 4 个字段:item_path、item_file、item_tmpl、item_type
- item_path 是您想要生成的文件路径
- item_file 是您想要生成的文件名
- item_tmpl 是位于模板目录中的模板文件
- item_type 目前支持 "static" 和 "dynamic"
静态结构
您可以使用上下文作为引用来访问bullet.toml属性
例如
item_path = "{{context.project}}.hello"
动态结构
您可以使用上下文作为引用来访问bullet.toml属性,
并且您可以使用资源作为引用来访问bullet.toml的资源项,例如
item_path = "{{context.project}}.hello" item_file = "{{resource.name_info.default_name}}"
对所有用户
bullet.toml示例
group = "example"
project = "test"
[ext]
content = "ext content"
[resources.basic_info]
name_info = {default_name = "hello"}
type_info = {}
ext = {}
fields = [
{name_info = {default_name = "id", camel_name="id"}, type_info= {java="Long"}},
]
bullet.toml根元素
属性 | 必须 | 类型 |
---|---|---|
组 | 是 | 字符串 |
项目 | 是 | 字符串 |
扩展名 | 否 | map<string, string> |
资源 | 否 | 资源元素 |
资源元素
属性 | 必须 | 类型 |
---|---|---|
name_info | 是 | name元素 |
type_info | 是 | map<string, string> |
扩展名 | 否 | map<string, string> |
字段 | 是 | 字段元素 |
字段元素
属性 | 必须 | 类型 |
---|---|---|
name_info | 是 | name元素 |
type_info | 是 | map<string, string> |
扩展名 | 否 | map<string, string> |
name元素
属性 | 必须 | 类型 |
---|---|---|
default_name | 是 | 字符串 |
snake_name | 否 | 字符串 |
hyphen_name | 否 | 字符串 |
upper_camel_name | 否 | 字符串 |
lower_camel_name | 否 | 字符串 |
支持的模板
Java Spring Gradle
cargo bullet install --name=bullet-spring-java
cargo bullet create --name=bullet-spring-java
cargo bullet build --name=bullet-spring-java --output=out
Java Spring Maven
cargo bullet install --name=bullet-spring-java-maven
cargo bullet create --name=bullet-spring-java-maven
cargo bullet build --name=bullet-spring-java-maven --output=out
MySQL累加器
cargo bullet install --name=bullet-sql-accumulator
cargo bullet create --name=bullet-sql-accumulator
cargo bullet build --name=bullet-sql-accumulator --output=out
依赖
~20–31MB
~559K SLoC