# lu-admin **Repository Path**: Luo_Jing98358/lu-admin ## Basic Information - **Project Name**: lu-admin - **Description**: 像搭积木一样来构建你的应用或者服务 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-08-17 - **Last Updated**: 2026-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Lu-Admin ## 介绍 像搭积木一样来构建你的应用或者服务。Lu-admin 既是一个后台管理框架,又是一个构建应用的工具。lu-admin中的每一个模块都是一个Springboot项目的启动器,它们并不实际提供启动服务的能力,而是将启动的能力交给构建者。当你引入了某个模块,那么你才拥有这个模块的能力或者服务。当你不需要时,你不应该在你的maven中引入它。 ## 快速开始 项目目录下lu.sql,先执行了,然后修改`lu-app`中的配置文件 ### 方式一(不推荐): 这是传统模式的使用,与众多脚手架一样,项目下提供了lu-app模块,该模块严格来说,并不属于lu-admin中的模块,它并没有被最外层的pom所接管,它就是一个独立springboot项目。 它引入了lu-admin所有模块的所有功能,你可以直接一键启动`AppApplication` 来启动它。 当然你要编写自己的业务代码也需要放到该项目里 + 优点: 可以快速开发,可以快速修改脚手架的代码 + 缺点: 与lu-admin脚手架代码在一起,如果脚手架有更新,更新麻烦。而且模块多,一些无需关注的模块都在IDE中,需要自行修改lu-app的包名与项目名 ### 方式二(推荐): 在第一种方式中,我们是使用的`lu-app` 来启动的引用,不推荐这么做。 lu-app就是一个应用的启动器,我们可以为我们的应用专门构建我们自己的启动器 + 进入项目目录下,将lu-admin打包到自己的maven仓库中 + `mvn clean install` 当然你也可以使用IDEA右侧的Maven工具,进行打包 + 在任意目录下创建你的项目(maven项目即可,包名那些都是你自己的) + 仿照`lu-app` 构建你的项目 + pom.xml: + ```xml com.lj lu 1.2.0 pom import ``` + 将`lu-app`中的`AppApplication`启动类(可以自己改名字) 和配置文件(yaml文件,日志配置文件)拷贝到你的项目中即可 + 优点,完全与脚手架分离,lu-admin升级只需要拉取代码再次`mvn clean install`,脚手架功能按需引入,项目结构简单(只有你自己的业务代码,没有脚手架的代码在你的IDE中) + 缺点,前置配置复杂,团队协作需要安装相同版本的lu-admin,且所有小伙伴都要安装在本地,当要升级脚手架时所有人都要走一遍安装流程。 + 如果公司团队有条件的话,可以发布到内网的maven仓库,将lu-admin安装在内网的maven仓库中即可,如果要更新或者你们自己要修改的话,改完只需要更新你们的内网仓库 ## 上线部署 `lu-app` 中提供了`Dockerfile`和`docker-compose.yml`的模板。当然你可能需要修改配置,这里使用的是docker方式的部署,你需要将打包后的jar修改好后的`Dockerfile`和`docker-compose.yml`一起上传至服务器,然后执行docker-compose。 当然你也可以直接上传jar使用`nohup java -jar lu-app-1.0-SNAPSHOT.jar --spring.profiles.active=prod > /dev/null 2>&1 &` 命令进行启动 ## 模块介绍 ### [lu-common](./lu-common/readme.md) 所有项目的公共依赖,主要是一些工具性的东西。如果你要构建的项目不需要提供web的能力(脱离web环境),可以只引入该模块。它提供了常见的工具类/枚举处理/公共异常等 ### [lu-common-web](./lu-common-web/readme.md) 所有需要提供web能力的模块需要引入它。它提供了一系列关于web公共处理的能力 ### lu-modules 每个模块实现具体的模块能力,开发者可以按需引入,例如 `lu-generator` 是代码生成器,那么在开发阶段需要引入,生产环境不需要。还例如 `lu-dict` 模块只是为了给前端提供字典能力,如果后端不需要查询数据库字典可以不引入。具体模块介绍,请看具体模块的readme文件