编辑
2026-03-20
编程语言-Java
00

本文针对“Maven 用哪个版本 JDK,编译出的应用就是哪个版本”这一常见误解进行深入剖析,系统阐述 Maven 编译过程中两个核心 JDK 概念的差异:

  1. 运行 JDK(Runtime JDK):执行 Maven 命令本身使用的 JDK 版本
  2. 目标 JDK(Target JDK):编译出的字节码要运行的 JDK 版本

核心内容包括:

  • 配置对比:对比默认行为(未配置时 Maven 使用运行 JDK 版本作为目标版本)与明确配置目标版本(通过 maven.compiler.release 固定输出字节码版本)的差异

  • 关键区分:详细对比 maven.compiler.releasejava.version 两个配置项的作用对象、配置方式、影响范围及典型值示例,澄清前者控制编译目标、后者控制运行环境的本质区别

  • 实战验证:提供完整的测试项目代码(Test.java + pom.xml)、Docker 环境测试方案及验证脚本,读者可自行运行验证

  • 字节码对照:附 JDK 8/11/17/21 对应的 Major Version 与编译参数速查表

  • 重要限制:强调不能反向编译(低版本 JDK 无法编译高版本字节码)及 API 兼容性约束(即使字节码版本正确,也不能使用高版本 API)

通过本文,读者将理解 Maven 跨版本编译的原理,掌握让高版本 JDK 编译出低版本兼容字节码的配置方法,实现开发环境使用最新 JDK 特性、生产环境保持低版本 JDK 兼容性的灵活构建策略。

编辑
2026-03-18
DevOps-CI/CD
00

本文基于参考博客 《GitLab Runner 配置详解》,系统梳理 GitLab Runner Helper 镜像的配置方法与版本对照关系。

核心内容包括:

  1. 配置文件详解:完整展示 /etc/gitlab-runner/config.toml 的真实配置示例,涵盖全局并发设置、会话服务器、Docker 执行器等核心参数,重点标注 helper_image 的配置位置

  2. 版本对照表:整理 GitLab 14.8.2、17.11.7、18.7.6 三个版本与对应 GitLab Runner 版本的映射关系,提供官方 Helper 镜像地址与阿里云镜像加速地址

  3. 镜像加速方案:针对国内网络环境,提供阿里云镜像仓库的替代方案,解决官方镜像拉取慢或失败的问题

通过本文,读者可以快速掌握 GitLab Runner Helper 镜像的配置方法,并根据自身 GitLab 版本选择正确的 Helper 镜像版本。

编辑
2026-01-16
开发工具-Git
00

在日常开发中,我们难免会遇到需要修改 Git 历史提交记录的场景:提交信息写错了、邮箱配置错误导致提交人信息不准确、或者需要合并多个提交。本文提供两份“比细狗还细”的实践步骤,手把手教你如何通过 git rebase -igit filter-branch 两种方式,分别实现批量修改历史提交信息批量修改历史提交人

参考文章:Git 修改历史提交记录

编辑
2026-01-10
编程语言-Java
00

本文以 SystemUserMapperSystemUserService 为实战案例,系统讲解 MyBatis-Plus 高级查询的三种核心技巧:

  1. 注解式 SQL:通过 @Select 注解配合 ${ew.customSqlSegment} 占位符,无需 XML 即可实现动态条件拼接

  2. Lambda 条件构造器:使用 LambdaQueryWrapper 替代字符串字段名,利用 likeeq 等方法构建类型安全的条件,配合 Hutool 的 StrUtil 实现动态条件过滤

  3. JSON 字段查询:通过 wrapper.apply() 方法拼接 JSON_EXTRACT 函数,实现 JSON 字段值的精准匹配,多个 apply 自动用 AND 连接

  4. 泛型分页IPage<Entity> 作为参数和返回值,与 MyBatis-Plus 分页插件无缝集成

通过本文,你将掌握如何在不编写 XML 的前提下,优雅地实现包含模糊查询、非空判断、JSON 字段提取等复杂场景的动态分页查询。

编辑
2026-01-05
开发工具-Git
00

在日常使用 Git 的过程中,有时需要修正最后一次提交的日期(例如因时间戳不准确导致 CI/CD 流水线记录异常,或为了保持提交时间与实际开发时间一致)。本文提供最简洁的操作指南:通过 git commit --amend --date 命令修改本地最后一次提交的日期,并使用 git push -f 强制覆盖远程分支。同时附上 Vim 编辑器的基本操作说明(插入模式、保存退出)及强制推送的风险提示。