jackboot
Version:
A cross-platform command line tool to create SpringBoot projects
150 lines (116 loc) • 6.21 kB
Markdown
# JackBoot
[](https://www.npmjs.com/package/jackboot) [](https://github.com/yourusername/jackboot/blob/main/LICENSE)
JackBoot 是一个跨平台命令行工具,用于快速创建标准化的 Spring Boot 项目骨架。通过简单的交互过程,生成包含完整目录结构和丰富依赖的项目模板,大大减少项目初始化时间。
## 特性
- 🚀 **跨平台支持**:同时适用于 Windows、macOS 和 Linux 系统
- 🧩 **完整的项目骨架**:生成标准的 Spring Boot 项目目录结构
- 📦 **丰富的依赖配置**:预配置 MyBatis-Plus、Redis、Swagger、Knife4j 等常用依赖
- 🛠️ **基础工具类**:内置常用工具类和配置类
- 🔄 **多环境配置**:预设开发、测试和生产环境配置
- 📝 **代码规范**:符合主流 Java 代码规范的项目结构
## 安装
使用 npm 全局安装:
```bash
npm install -g jackboot
```
或者使用 yarn:
```bash
yarn global add jackboot
```
## 使用方法
### 创建新项目
只需在终端中执行:
```bash
jackboot
```
按照交互提示,输入项目名称后,JackBoot 将自动生成完整的 Spring Boot 项目骨架。
## 项目结构
JackBoot 生成的项目结构如下:
```
project-name/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jackasher/
│ │ │ └── project/
│ │ │ ├── config/ # 配置类
│ │ │ ├── controller/ # 控制器
│ │ │ ├── service/ # 服务接口
│ │ │ │ └── impl/ # 服务实现
│ │ │ ├── mapper/ # MyBatis Mapper接口
│ │ │ ├── model/ # 模型层
│ │ │ │ ├── pojo/ # 实体类
│ │ │ │ ├── request/ # 请求对象
│ │ │ │ ├── response/ # 响应对象
│ │ │ │ ├── dto/ # 数据传输对象
│ │ │ │ ├── vo/ # 视图对象
│ │ │ │ ├── param/ # 参数对象
│ │ │ │ ├── enums/ # 枚举类
│ │ │ │ ├── form/ # 表单对象
│ │ │ │ ├── event/ # 事件对象
│ │ │ │ ├── command/ # 命令对象(CQRS)
│ │ │ │ └── query/ # 查询对象(CQRS)
│ │ │ ├── common/ # 通用组件
│ │ │ ├── constant/ # 常量类
│ │ │ ├── exception/ # 异常处理
│ │ │ ├── util/ # 工具类
│ │ │ ├── job/ # 定时任务
│ │ │ └── Application.java # 启动类
│ │ └── resources/
│ │ ├── mapper/ # MyBatis XML配置
│ │ ├── static/ # 静态资源
│ │ ├── templates/ # 模板文件
│ │ ├── application.properties # 主配置文件
│ │ ├── application-dev.properties # 开发环境配置
│ │ ├── application-test.properties # 测试环境配置
│ │ └── application-prod.properties # 生产环境配置
│ └── test/
│ └── java/ # 测试代码
├── .gitignore # Git忽略文件
├── pom.xml # Maven配置
└── README.md # 项目说明
```
## 内置依赖
JackBoot 预配置了以下常用依赖:
- **Spring Boot 3.1.7**:最新稳定版本的Spring Boot框架
- **MyBatis-Plus 3.5.7**:增强版的MyBatis ORM框架
- **MySQL Connector**:MySQL数据库连接器
- **Druid 1.2.20**:高性能数据库连接池
- **Redis & Redisson**:缓存和分布式锁支持
- **Spring Session**:会话管理
- **Knife4j 4.4.0**:增强版Swagger API文档工具
- **SpringDoc OpenAPI**:API文档支持
- **Lombok**:代码简化工具
- **Hutool 5.8.25**:Java工具类库
- **FastJSON2**:高性能JSON处理库
- **EasyExcel**:Excel处理工具
- **Commons Lang3/IO**:Apache通用工具库
- **Validation**:参数验证
- **AOP**:面向切面编程支持
- **Actuator**:应用监控
## 特色功能
1. **标准化目录结构**:遵循DDD和CQRS设计原则的项目结构
2. **完整的错误处理**:预配置全局异常处理和自定义业务异常
3. **通用返回对象**:统一的API响应格式
4. **跨域配置**:内置跨域支持,可通过配置文件自定义
5. **Redis工具类**:预配置Redis操作服务
6. **数据库支持**:配置好的MyBatis-Plus和分页插件
## 最佳实践
- 项目生成后,首先修改`application.properties`中的数据库连接信息
- 使用内置的`ErrorCode`和`BusinessException`处理业务异常
- 利用`ResultUtils`构建统一的API响应
- API文档可通过访问`http://localhost:8080/doc.html`查看
## 贡献指南
欢迎贡献代码或提出建议!请遵循以下步骤:
1. Fork 本仓库
2. 创建你的特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交你的更改 (`git commit -m 'Add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 开启一个 Pull Request
## 许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
## 联系方式
如有问题或建议,请通过以下方式联系我们:
- 提交 Issue
- 发送邮件至:jackasher36@gmail.com