SonarQube扫描Java项目时为何不识别Lombok注解?
SonarQube 默认不识别 Lombok 注解(如 @Data、@Builder、@NonNull 等),根本原因在于:SonarQube 的 Java 分析器基于标准 Java 编译器(Javac)的 AST 解析,而 Lombok 是通过编译期字节码增强(JSR-269 注解处理器 + 字节码操作)生成 getter/setter/构造器等代码,并不在源码中显式存在。SonarQube 在分析阶段若未启用 Lombok 支持,会将 Lombok 生成的成员、方法视为“缺失”,导致误报(如“未使用私有字段”“缺少空值检查”“构造器不可达”等)。此外,旧版 SonarJava 插件(< 6.0)完全忽略注解处理器输出;即使新版(≥7.0)支持 Lombok,也需显式配置 sonar.java.lombok.enabled=true 并确保构建环境已正确集成 Lombok(如 Maven 中声明 lombok 依赖及 annotationProcessor 路径)。若构建未触发 Lombok 处理(如跳过编译直接分析 class 文件),分析结果仍不可...
任总说的小改进 大奖励 大建议 只鼓励
华为一新员工,刚到华为时,就公司的经营战略问题,写了一封“万言书”给任正非,任正非批复:“此人如果有精神病,建议送医院治疗;如果没病,建议辞退。”注解:“小改进,大奖励;大建议,只鼓励”。员工最重要的还是要做好本职工作,不要把主要精力放在构思“宏伟蓝图”、做“天下大事”上面。作为一名新员工,对企业没有任何的理解,怎么可能提出合乎实际的建议。——任正非 任正非此语在常人看来有不尊重员工之嫌,但员工最重要的还是要做好本职工作,不要把主要精力放在构思“宏伟蓝图”、做“天下大事”上面。作为一名新员工,对企业没有任何的了解,怎么可能提出合乎实际的建议? “公司实行小改进大奖励,大建议只鼓励的制度”,这是华为七条核心价值观中的第四条。“能提大建议的人已不是一般的员工了,也不用奖励,一般员工提大建议,我们不提倡,因为每个员工要做好本职工作。大的经营决策要有阶段的稳定性,不能每个阶段大家都不停地提意见。我们鼓励员工做小改进,将每个缺憾都弥补起来,公司也就有了进步。所以我们提出小改进、大奖励的制度,就是提倡大家做实。不断做实会不会使公司产生沉淀呢?我们有务虚和务实两套领导班子,只有少数高层才是务虚...
关于butterfly主题配置文件的说明
以下是themes/butterfly/_config.yml文件的翻译版本,可以复制进去替换原文件 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811...
测试mermaid和mathjax插件
数学公式 流程图graph TD; A-->B; A-->C; B-->D; C-->D; gantt dateFormat YYYY-MM-DD title Test GANTT diagram section A section Completed work :done, des1, 2014-01-06,2014-01-08 Active work :active, des2, 2014-01-09, 3d Future work : des3, after des2, 5d sequenceDiagram participant Alice participant John Alice->>John: Hello John, how are you? John->>Alice: Fine, thanks, and you? Alice->>John: I'm fine, too.
PG数据库忘记了管理员账号和密码
一、核心原理(无需原密码)PostgreSQL 支持系统 postgres 用户免密本地登录,这是超级管理员级别的兜底权限,完全绕过数据库层面的账号密码校验,是重置管理员账号密码的核心依据,也是官方推荐的安全重置方式。 二、完整重置步骤(按顺序执行,必成功)步骤 1:切换系统 postgres 用户,免密进入 PG 18 终端(核心)直接执行以下命令,无需输入任何密码,即可登录 PG 18 数据库超级管理员终端(解决「忘记账号密码」核心问题): 12# 核心命令:指定18版本端口(默认5432),免密登录sudo -u postgres psql -p 5432 ✅ 执行成功后,终端会进入 PG 专属命令行,提示符变为:postgres=# → 表示已获取最高权限。 步骤 2:重置「默认管理员 postgres」密码(最常用)PG 默认的超级管理员账号就是 postgres,99% 的场景重置这个账号即可,在上述 postgres=# 终端中执行以下 SQL(直接复制): 123-- 重置postgres管理员密码,替换【你的新密码】为自定义密码(必填)ALTER USER p...
Debian 系统 PostgreSQL 启动显示 active 但无端口、无法连接 完整解决方案
12345678910➜ sudo systemctl status postgresql● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Thu 2026-01-01 09:07:57 CST; 21s ago Process: 726035 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 726035 (code=exited, status=0/SUCCESS) CPU: 862us1月 01 09:07:57 debian-cab systemd[1]: Starting PostgreSQL RDBMS...1月 01 09:07:57 debian-cab systemd[1]: Fini...
Go项目上的一个特殊Bug
今天生产环境出现了个奇怪的异常,挺纳闷的,毕竟这个服务没有怎么迭代。经过排查定位发现,居然是某些特殊日子才会出现的问题。 1RetentionMonths = 3 MonthTablePrefix = "jobs_" 代码是一个分表逻辑中,获取最近月份的表,通过 AddDate(0, -i, 0) 函数获取前几个月的表。应返回当前月和前 3 个月的分表名数组。[jobs_202510 jobs_202509 jobs_202508 jobs_202507]( golang 1.19 ) 1234567891011121314// GetRecentHotTables 获取最近 n 个月的表名称列表func (j jobPartitionRepositoryImpl) GetRecentHotTables() []string { months := RetentionMonths tables := make([]string, 0, months) now := time.Now() for i := 0; i <= months; i++...
Debian 12 上使用systemd-timesyncd进行时间同步
要在 Debian 12 上校准和同步 Universal Time (UTC),您可以按照以下步骤操作: 安装和启用 NTP 服务:首先,您需要确保您的系统安装了 NTP 服务(例如 systemd-timesyncd 或 chrony),以便自动同步时间。这里我们以 systemd-timesyncd 为例。 12$ apt update$ apt install systemd-timesyncd 启用并启动 NTP 服务: 12$ systemctl enable systemd-timesyncd$ systemctl start systemd-timesyncd 配置 NTP 同步:编辑 /etc/systemd/timesyncd.conf 文件,添加或修改 NTP 服务器。例如: 12[Time]NTP=time1.google.com time2.google.com time3.google.com time4.google.com 保存文件并退出。4. 重启 NTP 服务以应用更改: 1$ systemctl restart systemd-t...
Debian 12.1 安装ssh并开启 root 用户 ssh 登录功能
Debian12配置ssh服务器12345678# 安装SSHsudo apt install openssh-server # 启动SSHsudo systemctl start ssh# 开机自启SSHsudo systemctl enable ssh # 查看SSh状态sudo systemctl status ssh 打开 root 远程登录的操作 (不建议) 给root账户设置密码 sudo passwd root 修改ssh的配置文件/etc/ssh/sshd_config 找到 #PermitRootLogin 一行 改成 PermitRootLogin yes ,也就是删掉前端的注释并做改后面的值为yes 删掉#PasswordAuthentication yes 前面的 # 重启服务 sudo service ssh restart
Debian 12 开启WOL
一、控制方如果是在使用内网的另一台debian电脑,则可以安装wakeonlan或etherwake软件对其他内网的机进行唤醒: 在控制系统中安装 etherwake 软件包,以便 etherwake 命令将“魔术包”发送到我的计算机以唤醒它。程序必须以 root 身份运行才能发送数据包(我使用 sudo 来执行它)。 12sudo apt install etherwakesudo etherwake 11:22:33:44:55:66 #(即目标计算机的Mac地址) wakeonlan 包也可用,wakeonlan 是一个使用 UDP 数据包而不是 TCP 的程序,因此不需要以 root 身份运行。它的可配置性也略高。 12sudo apt install wakeonlanwakeonlan 11:22:33:44:55:66 #(即目标计算机的Mac地址) 二、被控制方BIOS开启LAN或WLAN唤醒功能计算机启动时按F2、F10或F11或Delete键(不同计算机有差异,具体可以按自己的型号百度)进入系统BIOS,然后找带有Wake on LAN等...

