开发人员

获取源码

RB 源码托关于 GitHub,主页是 getrebuild/rebuild 或使用 Gitee 镜像。如果您只想使用而非获取源码进行二次开发,可以直接下载最新的发行版本后进行 安装

环境准备

RB 对于开发环境的要求很简单,由于使用 Java 开发,因此可以运行在几乎所有操作系统上。请按如下清单准备:

  • JDK 1.8+(兼容 OpenJDK)
  • MySQL 5.5+
  • Redis 3.2+(非必须,可使用内建的 Ehcache 缓存)
  • Tomcat 8.0+(非必须,自 RB2.0 起默认使用 SpringBooot 内置 Tomcat)
  • Apache Maven 3.3+
  • IDEA 或 Eclipse (for JEE)

! RB 目前仅支持 MySQL8.0 的 mysql_native_password 认证模式

! 目前不支持 JDK14 或以上版本,因为 JDK14 删除了部分 Deprecated 包。详见 http://openjdk.java.net/projects/jdk/14/

开发部署

1. 启动参数

RB 中有几个非常重要的启动参数需要了解,无论是开发还是运行都非常重要。

参数 说明 默认值
-Drbdev 开发模式下请设为 true,会启用众多开发特性 false
-Drbpass 用于解密加密的配置参数,加密参数使用 AES(xxx) 包裹 REBUILD2018

? 如未指定 rbdevtrueyes,首次启动会进入 安装模式

2. 初始化数据库

在根目录下找到 src/main/resources/scripts/db-init.sql 文件,此数据库脚本文件包括三部分:

  1. 数据库和用户(请注意此部分默认是被注释的,首次使用请取消注释
  2. 初始数据

直接将此文件导入到 MySQL 数据库中。

3. 导入 IDEA/Eclipse 进行开发

直接使用 IDEA 或 Eclipse(for JEE) 将其作为 Maven 项目导入即可。

4. 启动

BootApplication 为 SpringBoot 启动类(jar 模式),此类同时兼容外置 Tomcat 启动(war 模式)。如需使用外置 Tomcat 请将 pom.xml 文件中注释为 UNCOMMENT USE TOMCAT 的下一行取消注释。

技术说明

主要目录

|- src/main/java ............................ Java 代码
|- src/main/resources ....................... 资源目录
|- src/main/resources/web ................... 前端(JS/CSS/HTML/图片)
|- src/main/resources/i18n .................. 多语言文件
|- src/main/resources/scripts ............... 数据库脚本
|- src/test ................................. 单元测试
|- .deploy .................................. JS/CSS 转码/压缩配置(仅打包时使用)

application.yml

RB 提供了两个 SpringBoot 配置文件,其中 application-dev.yml 在开发模式(见上文 启动参数)下启用,此文件有一些特别的配置。

# MySQL 配置
db.url: jdbc:mysql://127.0.0.1:3306/rebuild20?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useSSL=false&sessionVariables=default_storage_engine=InnoDB
db.user: rebuild
db.passwd: rebuild

# Redis 配置(可忽略)
db.CacheHost: 127.0.0.1
db.CachePort: 6379
db.CachePassword:

而以 rebuild 开头的参数为第三方云服务配置,包括七牛云存储、赛邮短信和邮件,这些参数不是必须的,如果您暂时没有这些云服务的账号,可以忽略或将其删除。

rebuild:
  # Cloud Storage - Use https://www.qiniu.com/
  StorageURL: //qn-cdn.getrebuild.com/
  StorageBucket: rb-cdn
  StorageApiKey: AES(zYkDunIsyaZd71rZoW1KPtJPIutYBsBqNaZxpE+4xNl9urgpG+Py0Q0w5m2+Z72e)
  StorageApiSecret: AES(Ke7e7qzT+5F2HC3C/89a5Aq+UopTPHygiSpPfnQjnSrpxgUtiSlauQbPnowtl+ew)
  ...

第三方服务配置可参考 第三方服务配置

主要框架

框架 作用 备注
SpringBoot (2.3) AOP/Context 等
Spring MVC Controller
persist4j 持久层 动态元数据,AJQL 支持
commons 工具包
bizz 基础权限包
Druid 数据库连接池
Thymeleaf (3.x) 页面模版
EasyExcel/POI Excel 解析与报表生成
Bootstrap (4.x) 基础样式库 进行过深度定制
React (16.x) 前端组件支持 大部分页面组件都由此编写
jQurty (3.x) 前端支持
eCharts (3.x) 图表组件
JUnit (5.x) 测试框架

更多第三方框架后端参见 pom.xml 文件, 前端参见 lib 目录

架构总览

最佳实践

这里总结了 RB 开发团队在开发过程中的一些实践,可以帮助您更好的进行开发工作。

开发工具

  • 使用 IDEA 并安装 lombok eslint jrebel 插件,IDEA 主要开发后端(Java)
  • 使用 VS Code 并安装 dbaeumer.vscode-eslint esbenp.prettier-vscode 插件,主要用于开发前端(HTML/JS/CSS)。RB 已经配置了语法检查和格式化,开发起来会较为方便

对以上各插件不了解的同学可自行搜索相关资料参阅

保持一个随时可发布分支

使用 Git/SVN 版本控制时,保持 master 主分支处于随时可发布状态,新功能或重构请使用新分支,待开发完毕并测试通过后再合入主分支。

遇到问题

如遇问题,欢迎提交 ISSUEPR 或在 Gitee 问答区留言

编辑更新时间 2/26/2021, 3:09:24 PM