vancefantasy / flyer-maker

a scaffold tool of java project
MIT License
111 stars 15 forks source link
awesome java scaffold

License

flyermaker是什么?

flyermaker是一个Java项目的脚手架工具,支持SpringBoot和SpringFramework,它允许动态生成工程代码和单元测试,同时尝试提供工程搭建、个别场景实现的最佳实践参考,让开发人员在短时间构建易维护、生产可用的服务。 flyermaker的灵感来自于SPRING INITIALIZRMyBatis Generator

集成环境

flyermaker使用指南

注意:flyermaker当前版本要求数据库表有自增主键,且主键名必须为'id'

Windows用户参考这里

  1. 下载最新版本并解压

    unzip flyermaker-0.0.1.zip //zip
    tar zxvf flyermaker-0.0.1.tar.gz //tar
  2. 修改配置文件

    编辑application.properties文件

  3. 命令行运行

    flyermaker -f application.properties

配置文件参考

字段 名称 是否必须 默认值 备注
author 作者 flyermaker 例如:vance
target.dir 目标目录 当前目录 例如:/tmp/flyermaker
project.type 项目类型 - 可选springmvc-rest,springboot-rest,springmvc-page,springboot-page
project.groupId Maven groupId - 例如:com.flyer
project.artifactId Maven artifactId - 例如:flyer-springboot-rest
project.package 包路径 - 例如:com.flyer.springmvc.rest
mysql.jdbc.url jdbc url - 例如:jdbc:mysql://localhost:3306/flyer?useUnicode=true&characterEncoding=utf-8&useSSL=false
mysql.username mysql username - 例如:flyer_w
mysql.password mysql password - 例如:123456
mysql.table.include 表白名单 多个以逗号分割,例如:user,order,t2
mysql.table.exclude 表黑名单 多个以逗号分割,例如:user,order,t2
mysql.column.exclude 字段黑名单 多个以逗号分割,例如:_timestamp,updatetime

关于项目类型

关于白名单、黑名单

白名单和黑名单是互斥的,白名单的优先级高于黑名单。即:如果设置了白名单,只会扫描白名单的表,如果只设置了黑名单,则会过滤掉黑名单中的表,如果同时设置了白名单、黑名单,则只有白名单生效。 字段黑名单是全局的,用来过滤不想要的字段,例如'_timestamp(ON UPDATE CURRENT_TIMESTAMP)'

单元测试

写好单元测试不是一件容易的事,这里分享下自己的经验:多数情况下使用独立的数据库运行单元测试,运行完清空数据库,会是一个明智的选择。事实上,在本项目中,就体现了类似的规则。

注意:为避免误清空其他环境数据,运行单元测试时会检测数据库实例是否以'_ut'结尾。生成代码后,请把单元测试的配置文件修改下。

模板项目

这里维护了flyermaker的模板:

贡献代码

欢迎提交Pull Request。有意见或建议,请提issue,也可以邮件