从 Java 迁移到 Clojure
系统讲解从 Java 渐进迁移到 Clojure 的工程路径:绞杀者模式与切入点排序、互操作边界与数据语义设计、Maven/Gradle 与 deps.edn 混合构建、AOT 与 uberjar 打包部署、团队技能矩阵与代码评审清单,以及常见陷阱与量化验收度量。
tag
系统讲解从 Java 渐进迁移到 Clojure 的工程路径:绞杀者模式与切入点排序、互操作边界与数据语义设计、Maven/Gradle 与 deps.edn 混合构建、AOT 与 uberjar 打包部署、团队技能矩阵与代码评审清单,以及常见陷阱与量化验收度量。
本附录对照同一件事在 Maven 与 Gradle 下的写法:项目结构与构建文件、依赖与版本管理、Spring Boot 插件配置、常用任务对照、多模块组织与可执行 jar 打包差异,并给出选型建议。文中 Maven 示例已在本机 3.9.12 实测,Gradle 示例未实跑,仅作对照参考。
GitHub Actions Java/JVM CI 实战:Maven/Gradle 构建与缓存策略、多 JDK 版本矩阵测试(8/11/17/21)、JaCoCo 代码覆盖率与 SonarCloud 集成、SpotBugs/PMD/Checkstyle 静态分析、Jib 免 Dockerfile 容器化构建、Maven 多模块 Monorepo CI、性能基准测试(JMH)自动化、发布到 Maven Central/JitPack、Kotlin/Scala 混合项目构建
本节讲 Maven 构建加速:先给出定位慢在哪里的步骤,再逐项拆解跳过无用阶段、按模块增量构建、并行构建、依赖预拉与离线、CI 缓存本地仓库、镜像源与增量编译等手段,重点说明 4.1 中 -DskipTests 不再跳过测试 AOT 处理这一语义变化及替代写法。
本节讲 Spring Boot 多模块工程的版本对齐:对比 spring-boot-starter-parent 与 spring-boot-dependencies BOM 的引入方式与取舍,说明 import scope 的生效规则、如何自建 BOM 统一内部组件版本、如何用 properties 或显式声明覆盖托管版本,并汇总 4.x 各依赖的大版本变化与 4.0 移除的依赖管理。
本节用图书借阅服务 book-loan 的五模块工程讲透 Maven 依赖冲突排查:从 NoSuchMethodError 等症状反查依赖树,读懂 dependency:tree 的 omitted 与 conflict 标记,掌握最短路径优先与先声明优先两条调解规则,并给出 exclusions、dependencyManagement 与 dependency:analyze 的用法。
讲清父 POM 的 parent 继承与 dependencyManagement 版本管理的分工,演示导入 spring-boot-dependencies BOM、子模块声明依赖、用 Enforcer 预防版本冲突,以及可复用库模块的打包与发布方式。
本节讲清如何用 start.spring.io 生成项目骨架:逐字段说明表单怎么填,强调 4.x 中 Spring Web 对应 spring-boot-starter-webmvc;给出等价的 curl 命令行方式,逐段解读生成的 pom.xml,并用表格对比 3.x 与 4.x 生成物在 parent 版本与 starter 名上的差异。
本节搭建 Spring Boot 开发环境:说明为何锁定 Java 21 LTS,给出 macOS、Linux、Windows 三种 shell 下安装 JDK 与配置 JAVA_HOME 的写法,附 java -version 与 mvn -v 实测输出;再配置 ~/.m2/settings.xml 国内镜像加速,并汇总版本不匹配、JAVA_HOME 未生效、拉包慢等常见故障的排查方法。
深入解析 Maven 与 Gradle 在 Java 工程化中的核心能力,涵盖多模块聚合、依赖管理、生命周期插件、增量构建、配置缓存及 CI/CD 集成,助你打造高性能、可维护的企业级构建流水线。
从生命周期到插件开发,从依赖冲突到多模块构建,深入 Maven 与 Gradle 的构建原理与生产实践