- 博客(814)
- 收藏
- 关注
原创 【云原生技术】为什么jdk还是老版本的不是我刚才配置的最新版本的?
4. 最终验证在命令提示符中运行以下命令,验证新版本是否被正确识别:bashjava -version如果一切都设置正确,这个命令应该显示您新安装的 JDK 版本信息。5. 修改 Path 中的旧版本如果您不想卸载旧版本,可以在 Path 中将新 JDK 的路径(%JAVA_HOME%\bin)放在旧版本的路径之前,以确保新版本优先。总结确保环境变量的设置正确,并且优先使用新安装的 JDK。如果这些步骤未能解决问题,可以尝试重启计算机,这样可以确保所有更改生效。如果问题仍然存在,欢迎继
2025-06-10 00:45:00
1068
原创 【云原生技术】linux下如何安装sonarqube以及为什么要安装sonar的数据库
• 数据库是 SonarQube 的“硬盘”,存放扫描结果与平台配置;• Windows 上的“无数据库体验”其实用了嵌入式 H2,只适合演示;• 生产环境(不论 Windows 还是 Linux)都必须使用官方支持的外置关系型数据库,才能保证性能、可靠性、备份与后续升级。因此,安装数据库并把连接信息写进 sonar.properties,是把 SonarQube 从“玩具模式”晋升为“可上线运维的正式环境”的关键一步。
2025-06-10 00:30:00
697
原创 【云原生技术】windows如何安装jdk
在 Windows 上安装 JDK 的步骤如下:### 1. 下载 JDK1. **访问 Oracle 官网**: - 前往 [Oracle JDK 下载页面](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html) 或 [OpenJDK 下载页面](https://jdk.java.net/)。2. **选择合适的版本**: - 选择适合您系统架构的安装包(例如,Windows x64 Instal
2025-06-09 01:00:00
269
原创 【云原生技术】sonarqube如何在服务器上安装
在服务器上安装 SonarQube 可以按照以下步骤进行:1. 系统要求确保您的服务器满足 SonarQube 的最低系统要求:操作系统:Linux、Windows、Mac OSJDK:Oracle JDK 11 或 OpenJDK 11+数据库:PostgreSQL、MySQL、Oracle、Microsoft SQL Server 等2. 下载 SonarQube访问 SonarQube 官网。下载最新的版本压缩包。3. 解压并配置 SonarQube将下载的压缩包上传到服务器,
2025-06-09 00:30:00
616
原创 【云原生技术】 Windows 下按照上述步骤创建和部署 SonarQube 自定义规则
可以在 Windows 下按照上述步骤创建和部署 SonarQube 自定义规则。以下是一些具体的操作建议:在 Windows 下创建自定义规则的步骤安装工具:确保您安装了 JDK(Java Development Kit),建议使用 JDK 11 或更新版本。安装 Maven(如果使用 Maven 进行构建)并配置系统环境变量。
2025-06-08 02:15:00
672
原创 【云原生技术】在构建和部署自定义 SonarQube 插件时,需要确保 SonarQube 本身的配置正确
在构建和部署自定义 SonarQube 插件时,需要确保 SonarQube 本身的配置正确。以下是一些关键步骤和常见配置要求,以帮助您解决构建后报错的问题。### SonarQube 配置要求1. **版本兼容性**: - 确保您自定义的插件与 SonarQube 版本(如 9.9.8)完全兼容。所有依赖项和类应该对应于相同版本。2. **JAR 文件部署**: - 将生成的 JAR 文件放到 `extensions/plugins` 目录下。确保没有老版本的 JAR 文件干扰新的
2025-06-08 00:45:00
380
原创 【云原生技】Caused by: java.lang.NoClassDefFoundError: org/sonar/source/analyzer/common/RuleMetadataLoader
遇到的错误信息显示:```Caused by: java.lang.NoClassDefFoundError: org/sonar/source/analyzer/common/RuleMetadataLoader```这个错误通常表示您的自定义插件中缺少某些依赖项,或者插件与当前 SonarQube 版本不兼容。
2025-06-07 01:00:00
293
原创 【云原生技术】我的sonar升级到支持jdk17版本的,jenkins还能用这个版本的sonar跑流水线任务吗?我的Jenkins的版本是2.387.1的
只要确保 SonarQube、Jenkins 和插件之间的兼容性,您就可以正常运行流水线任务。如果在过程中遇到任何问题,可以查看 Jenkins 和 SonarQube 的日志以进行故障排除。
2025-06-07 00:30:00
192
原创 【云原生技术】Linux下如何安装jdk
给出 Linux 下安装 JDK 的 3 种主流方式: 1) 系统仓库安装 OpenJDK(最快、维护简单) 2) 官方二进制包手动部署(多版本并存或用 Oracle JDK 时常用) 3) SDKMAN! 管理多版本(开发者个人机器友好)安装完成后统一介绍 JAVA_HOME 与 alternatives 配置及验证步骤。────────────────────────# 一、方式 1:用系统软件仓库安装 OpenJDK────────────────────────1. De
2025-06-06 02:15:00
818
原创 【云原生技术】MANIFEST.MF 文件是jar包里面的吗还是sonarqube本身带的?
确保选定的插件键是唯一的,并遵循合理的命名约定。在上传并重启 SonarQube 后,您的插件应该能够成功加载。
2025-06-06 00:45:00
636
原创 【云原生技】自定义规则,把编译的jar放到sonarqube的plugin目录下重启`NullPointerException: Plugin key is missing from manifest
遇到的错误显示 `NullPointerException: Plugin key is missing from manifest`,这表明您自定义的 SonarQube 插件在其 `MANIFEST.MF` 文件中缺少关键字段。### 问题原因SonarQube 插件要求在 JAR 文件的 `MANIFEST.MF` 文件中包含特定的字段,其中最重要的是插件的键(`Sonar-Plugin-Key`)。如果没有正确设置这些字段,SonarQube 在启动时会抛出 `NullPointerExce
2025-06-05 00:45:00
312
原创 【云原生技术】目标服务器没有安装 Docker,从后台服务器(已经安装了 Docker)上将镜像下载到目标服务器,并在目标服务器上使用该镜像流程
如果目标服务器没有安装 Docker,而您需要从一个后台服务器(已经安装了 Docker)上将镜像下载到目标服务器,并在目标服务器上使用该镜像,您可以考虑以下步骤:1. **将 Docker 镜像导出为 tar 文件**。2. **通过 SCP 或 FTP 将 tar 文件传输到目标服务器**。3. **在目标服务器上解压并加载镜像**。4. **运行容器**。
2025-06-05 00:15:00
95
原创 【云原生技术】 Jenkins Pipeline 帮助实现构建 Docker 镜像、推送并下载到目标服务器的自动化流程
使用 Jenkins 作为 CI/CD 工具,下面是一个示例 Jenkins Pipeline(Jenkinsfile),此 Pipeline 将会自动化构建、推送和下载镜像的过程
2025-06-04 11:15:44
548
原创 【云原生技术】直接使用一个 shell 脚本来完成构建 Docker 镜像、推送到镜像仓库以及将镜像传输到指定目标服务器的完整流程
脚本逻辑构建镜像: 使用 docker build 命令来构建镜像。推送镜像: 使用 docker push 命令将镜像推送到 Docker 仓库。保存为 tar 文件: 使用 docker save 将镜像导出为 tar 文件。传输 tar 文件: 使用 scp 将 tar 文件传输到目标服务器指定目录。加载镜像: 使用 docker load 在目标服务器上加载传输的 tar 文件。清理: 删除本地生成的 tar 文件以节省空间。
2025-06-04 11:13:25
216
原创 【云原生技术】写一条自定义 SonarJava 规则 这个需要怎么写?
下面给出一条「从零开始」编写、打包并在 SonarQube 中启用 **自定义 SonarJava 规则**的完整示例,专门拦截 `BigDecimal.valueOf(double|float)`。────────────────────────────一、准备工作────────────────────────────1. 环境 • JDK 8 或以上 (与 SonarQube Server 兼容即可) • Maven 3.6+ (推荐)
2025-05-31 01:00:00
828
原创 【云原生技术】sonar-cobol-plugin是什么
Sonar-COBOL-Plugin (在 SonarQube ⾥显示为 “COBOL” 分析器)1. 基本定义 • 由 SonarSource 官方出品的 COBOL 语言分析器 JAR • 负责把 COBOL 源码转换成 SonarQube 的规则违例、复杂度、重复代码、注释率等指标 • 和 Java、C#, JS 等分析器一样,只是针对 COBOL 语法/方言2. 许可证与版本 • 属于 SonarQube 的“商用语言”序列 - 必须在
2025-05-31 00:30:00
350
原创 【云原生技术】一份小 XML + 一行 sonar 属性,即可把被插件排除的规则重新拉进你的扫描流程。
以下步骤全部在 5 分钟内就能完成,并且不需要改动插件源码、也不需要写 Java 代码。==================================================1. 写一份最小化 PMD ruleset XML==================================================在任意目录(推荐放到版本库,例如 build/sonar/pmd/ 下面)新建文件 pmd-extra.xml:```xml<?xml version="1.
2025-05-30 01:00:00
600
原创 【云原生技术】为什么 3.4.0 的 `sonar-pmd-plugin` 里找得到 **BigIntegerInstantiation** 却看不到 **BigDecimalInstantiatio
为什么 3.4.0 的 `sonar-pmd-plugin` 里找得到 **BigIntegerInstantiation** 却看不到 **BigDecimalInstantiation**?1. 插件并不会把 **全部** PMD 规则都暴露给 SonarQube。 2. 维护者在 3.4.0(以及之后的 3.x 所有版本)里**有意“屏蔽”** 了几条与 SonarJava 重复度高的规则,其中就包括 BigDecimalInstantiation。理由写在 PR #108 / issue
2025-05-30 00:30:00
544
原创 【云原生技术】“BigDecimal.valueOf(double/float) should not be used”——SonarQube **目前没有内置规则
结论先行 1. “BigDecimal(float) should not be used”——SonarJava 自带的 S2111 其实已经包含,不需要再新增。 2. “BigDecimal.valueOf(double/float) should not be used”——SonarQube **目前没有内置规则**,也无法在 Web-UI 里通过“复制模板”方式直接新增。要让它生效,你只有两条路: A. 打开 PMD 插件里的 **BigDecimalInstantiation*
2025-05-29 01:00:00
669
原创 【云原生技术】报错java.lang.NoSuchMethodError: org.assertj.core.api.Fail.fail(Ljava/lang/String;)V
根源不是 “用法” 的问题,而是 **运行时依然抓到了 AssertJ 的低版本 JAR**—— 旧版 1.x/2.x 里的 `org.assertj.core.api.Fail` 没有 `fail(String)` 方法,于是 `JavaCheckVerifier` 在执行时就抛```java.lang.NoSuchMethodError: org.assertj.core.api.Fail.fail(Ljava/lang/String;)V```只要 class-path 里同时存在
2025-05-29 00:15:00
372
原创 【云原生技术】`mvn dependency:tree -Dincludes=org.assertj` 能顺利执行而且最后写着 **BUILD SUCCESS**,说明两件事
`mvn dependency:tree -Dincludes=org.assertj` 能顺利执行而且最后写着 **BUILD SUCCESS**,说明两件事:1. Maven download 过程本身没有报错(所有坐标都能解析、拉取)。2. 依赖树里找得到 AssertJ——否则 Maven 会告诉你 “No dependency found” 而不是 BUILD SUCCESS。如果你在输出里只看到类似```[INFO] +- org.assertj:assertj-core:jar
2025-05-28 00:45:00
326
原创 【云原生技术】报错NoClassDefFoundError: org/assertj/core/api/Fail,什么原因怎么解决?
`NoClassDefFoundError: org/assertj/core/api/Fail` 的含义: 测试启动时 **根本就找不到 assertj-core 这个 JAR**。 也就是说——跟前面那个 *NoSuchMethodError*(版本冲突)不同,现在压根没有把`assertj-core-3.x.jar` 放到运行期 class-path 里。99 % 的场景是 **IDE 直接用绿色 ▶ 运行 JUnit,用的不是 Maven/Gradle class-path**,而a
2025-05-28 00:15:00
802
原创 【云原生技术】代码项目是需要用jdk版本17编译构建的,但soanrqube装的版本是9.2.2 里面支持的jdk版本是jdk11,那么代码在进行扫描的时候会影响到代码吗
我的代码项目是需要用jdk版本17编译构建的,但是我现在soanrqube装的版本是9.2.2 里面支持的jdk版本是jdk11,那么我的代码在进行扫描的时候会影响到我的代码吗,我的sonarqube里面应该配置的jdk是版本多少?
2025-05-27 01:00:00
336
原创 【云原生技术】使用 SonarQube 9.2.2 进行扫描 Java 17 代码会影响扫描结果吗?
我的代码项目是需要用jdk版本17编译构建的,但是我现在soanrqube装的版本是9.2.2 里面支持的jdk版本是jdk11,那么我的代码在进行扫描的时候会影响到我的代码扫描吗
2025-05-27 00:45:00
187
原创 【云原生技术】报错java.lang.NoSuchMethodError: org.assertj.core.api.Fail.fail(Ljava/lang/String;)V
根源不是 “用法” 的问题,而是 **运行时依然抓到了 AssertJ 的低版本 JAR**—— 旧版 1.x/2.x 里的 `org.assertj.core.api.Fail` 没有 `fail(String)` 方法,于是 `JavaCheckVerifier` 在执行时就抛```java.lang.NoSuchMethodError: org.assertj.core.api.Fail.fail(Ljava/lang/String;)V```只要 class-path 里同时存在
2025-05-26 16:42:28
601
原创 【云原生技术】如何看jacoco支持的jdk版本是多少?
在你的 Jenkins 流水线中,如果你先进入一个 JDK 17 的容器,然后执行 `mvn compile` 和 SonarQube 扫描,这里有几个关键点需要注意:### 代码扫描影响1. **使用的 JDK 版本**: - 由于你在 JDK 17 的容器中运行 `mvn compile`,所以编译和生成的字节码将是 JDK 17 格式。2. **SonarQube 版本**: - SonarQube 9.2.2 本身只能在 JDK 11 下运行,并且其分析器无法完全支持 Jav
2025-05-26 16:35:35
282
原创 【云原生技术】在你的 Jenkins 流水线中,如果你先进入一个 JDK 17 的容器,然后执行 `mvn compile` 和 SonarQube 扫描,这里有几个关键点需要注意
如果我是用的jenkinsfile走的流水线代码扫描流程,我jenkinsfile先进入到一个jdk17的容器里面,然后执行 mvn compile 然后进行sonar的代码扫描,我的代码项目是需要用jdk版本17编译构建的,但是我现在soanrqube装的版本是9.2.2 里面支持的jdk版本是jdk11,那么我的代码在进行扫描的时候会影响到我的代码扫描吗?我代码扫描的时候到底是jdk11还是jdk17?
2025-05-26 16:34:14
343
原创 【云原生技术】SonarQube 生态中PMD插件和P3C插件详细介绍
4. 在项目中如何选择 / 组合1. 小团队、对《阿里规约》认同度高 → 直接启用 **P3C**,配合 SonarJava 基本够用。 2. 追求全面 Bug/安全检测 + 额外编码规范 → **SonarJava + PMD**(必要时加 P3C 少量规则)。 3. 大型多团队,希望“一本规约”统一风格 → **P3C 为主**,再补充 SonarJava/PMD 的 Bug 与安全规则。 4. 通过 Quality Gate 控制:将 **Blocker/Critical** Bug
2025-05-25 00:30:00
773
原创 【云原生技术】./sonar.sh start 的时候报错 wrapper报错无法执行二进制文件
# 快速修复思路------------------------------------------------------------1. 换用官方 ZIP/TAR 包重新部署,确保解压到干净路径; 2. 确保服务器是 64-bit x86_64 且 glibc ≥ 2.17; 3. `chmod +x bin/linux-x86-64/wrapper`; 4. 再次执行 ```bash $SONAR_HOME/bin/linux-x86-64/sonar.sh start
2025-05-24 00:45:00
285
原创 【云原生技术】SonarQube如何重启
# 1. Linux 系统服务(最常见)────────────────────────────• systemd sudo systemctl restart sonarqube• SysV init(老系统) sudo service sonarqube restart # 或 sudo /etc/init.d/sonarqube restart────────────────────────────# 2. 直接用自带脚本──────────
2025-05-24 00:30:00
217
原创 【云原生技术】镜像和容器的关系是什么?
镜像 Image • 只读模板:包含文件系统快照(可执行文件、依赖、配置默认值)和元数据(Entrypoint、Env 等)。 • 静态工件:放在本地或镜像仓库(Registry)里,像 “安装包/ISO”。容器 Container • 镜像的运行时实例:启动时把镜像解压成多层文件系统,再加一层可写层(Copy-on-Write)。 • 有进程、有 PID 与 网络 命名空间,真正消耗 CPU/内存。 • 生命周期短:停止或删除后,可写层一起消失;镜像本身不变,可被拿去再启新容器。
2025-05-24 00:15:00
150
原创 【云原生技术】sonar-pmd-3.2.1 有BigDecimal(float)、 BiqDecimal.valueof(double) 、BigDecivalueof(float)这几个规则吗
`sonar-pmd` 3.2.1 已经带有 PMD 的规则 **BigDecimalInstantiation**,功能和 3.9.0 中的一样——能同时拦截下列 4 种写法:1. new BigDecimal(double) 2. new BigDecimal(float) (float 会自动提升为 double,照样命中) 3. BigDecimal.valueOf(double) 4. BigDecimal.valueOf(float) (同理,flo
2025-05-23 01:00:00
219
原创 【云原生技术】sonarqube扫描的规则可以增加配置么
sonarqube扫描的规则可以增加配置么,原本有"BiqDecimal(doubg)"should not be used 。我们为避免精度丢失,想增加BigDecimal(float)、 BiqDecimal.valueof(double) 、BigDecivalueof(float)这几个用法,应该怎么操作增加?可以在sonar的页面增加这几个规则吗?结论 1. “BigDecimal(double) should not be used”(规则 java:S2111)是 SonarJava
2025-05-23 00:30:00
1570
原创 【云原生技术】sonar扫描出来的安全热点怎么处理?
SonarQube 把与安全相关的规则分成两类: • Vulnerabilities —— 检测到的代码在当前状态下就能被利用,需要直接修复。 • Security Hotspots —— 代码位于“敏感区”,有被误用的风险,但是否真正成漏洞要靠人工判断。 处理 Security Hotspots 的核心不是“全部改掉”,而是“逐条评估、留下安全记录、必要时再修改”。下面给出一个常用、也较容易落地的流程。
2025-05-22 01:00:00
1373
原创 【云原生技术】sonar的页面可以配置新增一条规则吗?
SonarQube Web 页面只能基于**已有可参数化模板**派生规则; 要写完全新的扫描逻辑,必须开发或引入插件,然后再到页面里启用它——单纯靠 UI 点几下是做不到的。
2025-05-22 01:00:00
741
原创 【云原生技术】容器和镜像关系
类比镜像 ≈ “类 / 蓝图 / 模具”容器 ≈ “对象 / 实际房子 / 制品”关键区别读写性 镜像只读;容器有额外读写层。状态 镜像无运行状态;容器包含进程及运行时配置。生命周期 镜像长期存在;容器创建-运行-销毁。可复用 同一镜像可复用无限次,确保环境一致。
2025-05-22 00:30:00
765
原创 【云原生技术】sonarqube扫描的规则如何增加
需要自己“加一条规则”,因为 SonarJava 内置那条规则(ID java:S2111,标题 “BigDecimal(double) should not be used”)只检查new BigDecimal(double)而不会管 float 或 valueOf()。SonarQube 本身没有“把更多参数写进同一条规则”的开关,想再扫 float 和 valueOf() 只能靠 自定义规则(或借助 PMD/Checkstyle 插件)。
2025-05-22 00:15:00
1104
原创 【云原生技术】国内网页下载kafka的镜像去哪里下载?
• 这几个国内仓库的页面都支持“复制 Pull 命令”和查看镜像层大小,但并不会直接给 .tar 压缩包下载按钮——镜像规范如此设计。 • 只想下载 Kafka 二进制包(非容器)的话,请直接访问 Apache 官网下载 kafka_*.tgz。 • 需要 Docker Compose、KRaft 单机示例或生产集群部署手册,随时告诉我。
2025-05-21 01:00:00
1672
原创 【云原生技术】tgz的文件如果解压缩成.tar文件
`.tgz` 文件本质上就是先用 tar 打包、再用 gzip 压缩得到的 `.tar.gz`。 要把它“解压”成未压缩的 `.tar` 包,只需去掉 gzip 这一层即可,不必真正解开 tar。
2025-05-21 00:45:00
139
原创 【云原生技术】镜像是个tar包吗,推送镜像的时候可以推送tar包吗
1. Docker/OCI 镜像本质上是一组 layer(每层都是 tar 文件)+ manifest; 把它们再一起打包成一个单独的 tar 文件只是为了“离线传输”。 2. 镜像仓库(Docker Hub、Harbor、ECR…)只接受符合 OCI Distribution API 的分层上传;它不会识别你手里的整个 tar 包。 因此: • 常规推送必须用 docker push / nerdctl push / skopeo copy…… • 想用 tar
2025-05-21 00:30:00
1228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人