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 文件),分析结果仍不可...
任总说的小改进 大奖励 大建议 只鼓励
华为一新员工,刚到华为时,就公司的经营战略问题,写了一封“万言书”给任正非,任正非批复:“此人如果有精神病,建议送医院治疗;如果没病,建议辞退。”注解:“小改进,大奖励;大建议,只鼓励”。员工最重要的还是要做好本职工作,不要把主要精力放在构思“宏伟蓝图”、做“天下大事”上面。作为一名新员工,对企业没有任何的理解,怎么可能提出合乎实际的建议。——任正非 任正非此语在常人看来有不尊重员工之嫌,但员工最重要的还是要做好本职工作,不要把主要精力放在构思“宏伟蓝图”、做“天下大事”上面。作为一名新员工,对企业没有任何的了解,怎么可能提出合乎实际的建议? “公司实行小改进大奖励,大建议只鼓励的制度”,这是华为七条核心价值观中的第四条。“能提大建议的人已不是一般的员工了,也不用奖励,一般员工提大建议,我们不提倡,因为每个员工要做好本职工作。大的经营决策要有阶段的稳定性,不能每个阶段大家都不停地提意见。我们鼓励员工做小改进,将每个缺憾都弥补起来,公司也就有了进步。所以我们提出小改进、大奖励的制度,就是提倡大家做实。不断做实会不会使公司产生沉淀呢?我们有务虚和务实两套领导班子,只有少数高层才是务虚...
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 使用chrony做时间同步
chrony 是一个灵活且快速的 NTP 客户端和服务器,非常适合断断续续的网络连接或虚拟化环境。 安装 chrony: 12sudo apt updatesudo apt install -y chrony 配置 chrony(可选):默认情况下,chrony 配置文件位于 /etc/chrony/chrony.conf,可以编辑该文件指定其他 NTP 服务器: 1sudo nano /etc/chrony/chrony.conf 找到以 pool 或 server 开头的行并替换为自己指定的服务器。例如: 12pool ntp.server1.com iburstserver ntp.server2.com iburst 保存并退出后,重启 chrony: 1sudo systemctl restart chrony 验证 chrony 状态:可以使用以下命令检查同步状态: 1chronyc tracking 该命令会显示 chrony 的时间同步状态,包括偏差和延迟等信息。 完成上述步骤后,Debian 12 的系统时间应当成功与 NTP 服务器同步。
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等...
DoH和DoT是什么
DNS 协议要讲 DoT 和 DoH,不可避免的我们要重温一下 DNS 协议的历史。 DNS 的历史与安全问题DNS 协议在 1987 年甚至更早的时候就被规范好,那个年代互联网安全还不是严重的威胁,DNS 协议使用非可靠的 UDP 和 TCP 协议。 UDP 的问题UDP 是一个无状态的传输协议,尽管在传递数据时非常快,但它是无法避免攻击的。此外,在数据传递时,因为网络状态差的时候,很容易发生丢包的情况。此外,UDP 是明文在网络上传输。 TCP 的问题TCP 相对于 UDP 安全性是略高。它的可靠体现在 TCP 在传递数据之前,会通过三次握手来建立连接。 然而 TCP 就是完美的解决方案吗?并不尽然。正是因为 TCP 的三次握手机制,导致 TCP 很容易被利用来实现 DOS 等攻击。 DNS 协议的安全隐患时至今日,互联网的安全环境已经截然不同。假设用户被某个攻击者盯上,我们来看原来的使用 UDP 和 TCP 协议可能存在什么样的安全隐患: 隐患一:无法验证对端的身份当浏览器接收到一个 DNS 的响应时,它无法确认这个响应是否来自它信任的 DNS 服务商。在 DNS 服务商答...
Debian 12 使用NTP同步时间
在 Debian 12 上使用 ntpd(Network Time Protocol Daemon)进行时间同步可以提供高精度和稳定的时间服务。以下是详细的设置步骤: 1. 安装 NTP 服务首先,确保系统包是最新的,然后安装 ntp: 12sudo apt updatesudo apt install -y ntp 2. 配置 NTP 服务器ntpd 的配置文件位于 /etc/ntp.conf。安装完成后,您可以编辑此文件以指定 NTP 服务器和调整其他设置。 1sudo nano /etc/ntpsec/ntp.conf 在文件中找到以 pool 或 server 开头的行,这是默认的 NTP 服务器。可以将它们替换为您想要使用的 NTP 服务器。例如,使用公共的 NTP 服务器: 12345# 默认的服务器配置pool 0.debian.pool.ntp.org iburstpool 1.debian.pool.ntp.org iburstpool 2.debian.pool.ntp.org iburstpool 3.debian.pool.ntp.org iburst...


