开发人员

REBUILD 开源版本使用 GPL-3.0 协议,用户可在 GPL-3.0 协议约定内对源代码进行开发修改,但必须遵守 GPL-3.0 协议约定。在 GPL-3.0 协议中约定“您必须对修改的源码进行开源,且同样采用 GPL-3.0 协议”。如果您无法遵守,请立即停止对本系统进行开发修改,并立即删除所有相关代码,否则将承担相应法律责任,请您审慎进行。
更多请详情参阅 用户服务协议

获取源码

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

环境准备

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

  • JDK 1.8+(兼容 OpenJDK)
  • MySQL 5.6+
  • Redis 3.2+(非必须,可使用内建的 Ehcache 缓存)
  • Tomcat 8.0+(非必须,从 V2.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 AOP/Context 等
Spring MVC Controller
persist4j 持久层 动态元数据,AJQL 支持
commons 工具包
bizz 权限包
Druid 数据库连接池
Thymeleaf (3.x) 页面模版
EasyExcel/POI Excel 解析与报表生成
Bootstrap (4.x) 基础样式库 进行过深度定制
React (16.x) 前端组件支持 大部分页面组件都由此编写
jQuery (3.x) 前端支持
eCharts (3.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 主分支处于随时可发布状态,新功能或重构请使用新分支,待开发完毕并测试通过后再合入主分支。

开闭原则(OCP)

遵守对扩展开放,对修改关闭的原则,以降低后续新版本升级同步的难度。

? RB 会保证对外接口和使用端兼容,但不保证代码层面的兼容。如您进行过任何形式的开发,后续升级时需您自行保证代码兼容性。我们更加推荐您使用 OpenAPIFrontJS 接口进行二次开发

该文档内容对您是否有帮助?没有
如有任何疑问,请与我们的 社区QQ 群 联系
更新时间 5/13/2022, 12:25:40 AM