MJGA 是一款全新设计的,基于云原生理念的打造的现代 Java Web 脚手架,它具备以下特点:
- 容器化的应用
- 可装卸的组件
- 有口皆碑的单元测试
- 通过
docker-compose.yml
管理应用程序的整个生命周期与配置。 - 通过
.env
文件自定义所有配置。 - 通过
docker-compose.yml
交付整个应用程序和配套的生态组件。
- 集成了常用的基础业务功能,如身份验证、权限管理和缓存抽象。
- Code Check&Format、CI/CD Plugin 、Docker Integration 全部开箱即用。
- 完善的、从设计出发的、隔离了运行环境的单元测试。
- 现代化:技术选型紧跟开源社区风向。
- 可配置化:支持在网页上选配组件。
- 最佳实践:每个变量和函数、每个模块和组件都考虑最佳实践。
- 专注边界:将守好自己的功能边界,不做 Not All In One。
更多的组件正在开发中……
确认环境变量与执行权限
# confirm .env and make sure process can use it
vim ${projectRoot}/.env
# confirm gradlew executable (unix-like OS)
chmod 755 ${projectRoot}/gradlew
cd ${projectRoot}
docker compose up -d database
docker compose build web
docker compose up -d web
(可选)在本机启动
# confirm .env and gradle.properties make sure process can use it
vim ${projectRoot}/.env
vim ${projectRoot}/gradle.properties
docker compose up -d database
./gradlew jooqCodegen
${projectRoot}/gradlew bootRun
编译项目,并根据数据库 Schema 生成表的映射对象与 Data Access Layer
# confirm .env and make sure process can use it
vim ${projectRoot}/.env
# generate schema mapping codes
./gradlew jooqCodegen
# output ->
# projectRootDir/build/generated-sources
# └── org.jooq.generated
# └── tables # table mapping
# ├── daos # Data Access Layer
# ├── pojos # mapping dto
# └── records # jooq query record
全局代码格式化
./gradlew spotlessApply
全局代码检查
# confirm .env and make sure process can use it
vim ${projectRoot}/.env
./gradlew pmdMain
单元测试
# confirm .env and make sure process can use it
vim ${projectRoot}/.env
# will automatically generate jacocoTestReport
./gradlew test
- 本仓库主要为代码展示和问题收集使用。代码可能会落后从产品官网下载的版本。
- 关于产品的意见、讨论、bug 请提交到 issue 中,我会认真处理。
- 也欢迎其他社区提出你的任何想法,我会积极参与回复。
- 更多的全新视频教程正在录制中,请耐心等待。
- 将 Mjga 推广给你身边的同事和朋友,让 Java 再次伟大。