# generator-cli
**Repository Path**: lwydyby_admin/generator-cli
## Basic Information
- **Project Name**: generator-cli
- **Description**: spring boot + vue项目代码生成命令行工具
- **Primary Language**: Go
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 3
- **Created**: 2019-10-31
- **Last Updated**: 2025-01-16
## Categories & Tags
**Categories**: code-generator
**Tags**: None
## README
# LCli
[](https://goreportcard.com/report/github.com/lwydyby/generator-cli)
spring boot + vue项目代码生成命令行工具
## 简介
``` bash
$ genratorv1 --help
A code generator for spring boot program.
For example:
$ genratorv1 -f ./data.json
-t ./templates \
-o ./output
Usage:
genratorv1 [flags]
Flags:
-f, --file string setting文件及data文件所在位置
-o, --output string 输出到的文件夹.
-t, --template string 模板文件所在文件夹
-v, --version 版本信息
```
## 安装及使用
项目根目录存在mac上编译好的二进制文件(genratorv1) 其他系统请下载源码自行安装
### 源码安装步骤
``` bash
$ git clone git@github.com:lwydyby/generator-cli.git
$ glide install
$ make install
```
### 说明
1. setting.yaml
配置了模板名称和相应的输出文件名
```yaml
template:
format: Go
template_files:
web:
file_path: web.tmpl
output_file_naming: index.vue
dao:
file_path: dao.tmpl
output_file_naming: userRepository.java
api:
file_path: api.tmpl
output_file_naming: user.js
service:
file_path: service.tmpl
output_file_naming: UserService.java
controller:
file_path: controller.tmpl
output_file_naming: UserController.java
entity:
file_path: entity.tmpl
output_file_naming: User.java
search:
file_path: search.tmpl
output_file_naming: UserSearch.java
```
2. data.yaml
模板中所依赖的数据
```yaml
data:
format: mongo
# 提供搜索功能的字段
search_column:
- prop: "name"
label: "名称"
type: "input"
- prop: "type"
label: "类型"
type: "select"
#创建时所需的字段
create_column:
- prop: "name"
type: "String"
label: "名称"
#列表展示的字段
table_column:
- prop: "name"
label: "名称"
type: "String"
#数据库中的名称
column_name: "name"
#除列表展示外数据库要保存的字段
extra_column:
- prop: "createDate"
type: "Date"
label: "创建日期"
column_name: "create_date"
#按钮及表单名
button_name: "用户"
#生成的英文名
name: "User"
package: "com.example"
```
3. *.tmpl
下面展示了生成vue的模板,其余模板请参照templates/example
```javascript
{{$Data := .Data}}
{{$pre:= "{{"}}
{{$end:= "}}"}}
{{ range $Data.SearchColumn }}
{{if eq .Type "input"}}
{{else if eq .Type "select"}}
{{end}}
{{- end }}
查询{{$Data.ButtonName}}
创建{{$Data.ButtonName}}
{{ range $Data.TableColumn }}
{{ $pre }}scope.row.{{.Prop}}{{$end}}
{{- end }}
编辑{{$Data.ButtonName}}
删除{{$Data.ButtonName}}
{{ range $Data.CreateColumn }}
{{if eq .Type "input"}}
{{else if eq .Type "select"}}
{{end}}
{{- end }}
```
4. 使用实例
```bash
./generatorv1 -f ./templates/example/ -o ./templates/example/test/ -t ./templates/example/
```