# neatlogic-build-root **Repository Path**: neat-logic/neatlogic-build-root ## Basic Information - **Project Name**: neatlogic-build-root - **Description**: 构建 neatlogic war 统一入口 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: develop4.0.0 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-26 - **Last Updated**: 2026-04-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # neatlogic-build-root 本项目是 NeatLogic 多模块工程的 **Maven 聚合构建根(Build Root / Aggregator)**,用于统一管理所有基础模块、业务模块以及按环境拆分的扩展模块,通过 **Maven Profiles** 控制不同构建场景下的模块组合。 > 该工程本身不产出可运行制品(`packaging=pom`),仅用于组织模块与统一构建入口。 --- ## 目录结构与角色说明 ```text IdeaProjects/ ├── build-root # 当前工程(聚合器 / 构建入口) │ └── pom.xml ├── neatlogic-parent # 父 POM(依赖管理、插件管理、公共属性) ├── neatlogic-framework # 核心框架模块 ├── neatlogic-*-base # 各业务域基础模块(Base) ├── neatlogic-* # 各业务域功能模块 ├── neatlogic-modules-dev # 开发模块版本 ├── neatlogic-modules-release # 封板模块版本 ├── neatlogic-master ├── neatlogic-pbc └── ... ``` ### 关键模块类型 - **neatlogic-parent** - 所有子模块的父 POM - 统一管理: - 依赖版本(`dependencyManagement` / BOM) - 插件版本(`pluginManagement`) - 公共属性(JDK 版本、编码、仓库配置等) - **`*-base` 模块** - 各业务域的基础能力与公共组件 - 通常被对应的业务模块依赖 - **业务模块(neatlogic-xxx)** - 实际业务功能实现 - **modules-dev / modules-release / commercial** - 通过 Profile 控制加载的扩展模块集合 --- ## 模块加载策略 ### 默认模块(无 Profile) 执行 Maven 时如果不指定 `-P`,会加载 `pom.xml` 中 `` 定义的所有核心与基础模块: - 框架模块 - 所有 `*-base` - 所有标准业务模块 - webroot / tenant / resources / alert 等 适用于: - 日常开发 - 全量本地构建 - CI 基础流水线 --- ## Profiles 说明 ### 1. develop ```xml -Pdevelop ``` **作用:** 加载开发环境扩展模块 **包含模块:** - `neatlogic-modules-dev` **适用场景:** - 本地联调 - 开发环境部署 --- ### 2. release ```xml -Prelease ``` **作用:** 加载封板环境扩展模块 **包含模块:** - `neatlogic-modules-release` **适用场景:** - 发版构建 - 生产环境制品打包 --- ### 3. commercial ```xml -Pcommercial ``` **作用:** 加载扩展功能模块 **包含模块:** - neatlogic-master - neatlogic-pbc - neatlogic-codehub-base - neatlogic-ai-base - neatlogic-codehub - neatlogic-rdm-commercial - neatlogic-cmdb-commercial - neatlogic-dr / neatlogic-dr-base - neatlogic-diagram - neatlogic-itsm-commercial - neatlogic-tenant-commercial - neatlogic-autoexec-commercial - neatlogic-inspect-commercial - neatlogic-deploy-commercial - neatlogic-alert-commercial - neatlogic-database - neatlogic-ai - neatlogic-informant / neatlogic-informant-base **适用场景:** - 扩展构建 - 客户交付版本 --- ## 构建方式 ### 全量构建(默认) ```bash mvn clean install ``` 构建所有核心模块(不包含 develop / release / commercial 扩展模块)。 --- ### 开发环境构建 ```bash mvn clean install -Pdevelop ``` 在默认模块基础上,额外构建: - `neatlogic-modules-dev` --- ### 封板环境构建 ```bash mvn clean install -Prelease ``` --- ### 组合 Profile 构建所有子模块 支持多 Profile 同时启用: ```bash mvn clean install -Pdevelop,commercial ``` --- ## 构建war 从 `build-root` 目录执行: ```bash mvn clean install -pl ../neatlogic-webroot -am ``` 参数说明: - `-pl`:只构建指定模块 - `-am`:自动构建依赖模块 结合 Profile: ```bash mvn clean install -pl ../neatlogic-webroot -am -Pdevelop ``` --- ## 版本与依赖管理规范 ### 统一版本来源 - 所有第三方依赖版本 - 定义在 `neatlogic-parent` 或 BOM 模块中 - 子模块中: - **禁止写 ``** ### 插件管理 - 插件版本统一在 `pluginManagement` 中维护 - 子模块只声明插件,不声明版本 --- ## 常见问题 ### 1. 为什么这个项目没有 `src` 目录? 这是 Maven 聚合工程(`packaging=pom`),仅用于组织模块,不产出 Jar / War。 --- ### 2. 为什么模块路径是 `../xxx`? 该工程作为独立构建入口存在于 `build-root` 目录中,实际模块与其同级放置,通过相对路径引用。 --- ### 3. Profile 不生效? 请确认: ```bash mvn help:active-profiles ``` 检查是否成功激活目标 Profile。 --- ## 维护规范 - 新模块接入流程: 1. 在 `neatlogic-parent` 中声明依赖管理(如有新三方库) 2. 在 `build-root/pom.xml` 中添加 `` 或 Profile 模块 3. 在 `neatlogic-modules-dev` 中声明开发子模块版本 4. 在 `neatlogic-modules-release` 中声明封板子模块版本 - 禁止在子模块中: - 自行管理三方版本 - 覆盖插件版本 ---