Skip to main content

java-check-spotbugs

SpotBugs静态分析技能:使用SpotBugs、Find Security Bugs、fb-contrib进行Java代码缺陷和安全分析

설치로 이동

소스 정보

저장소
hellyguo/self-ai-spec
최근 소스 활동
2026년 8월 27일 03:35
감지된 SKILL.md 언어
중국어
스타
8
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
3 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
java-check-spotbugs
description
SpotBugs静态分析技能:使用SpotBugs、Find Security Bugs、fb-contrib进行Java代码缺陷和安全分析
# SpotBugs Java静态分析技能 ## 版本兼容性 - **SpotBugs 4.7.3**:最高支持Java 17(class文件major version 61) - **Java 25不兼容**,需使用Java 17或更早版本运行分析 ```bash java -version javap -verbose target/classes/com/example/Test.class | grep major ``` ## 工具位置 ```bash SPOTBUGS_HOME=~/app/spotbugs-4.7.3 SPOTBUGS_JAR=$SPOTBUGS_HOME/lib/spotbugs.jar FIND_SEC_BUGS_SRC=${HOME}/open_source/github/find-sec-bugs/ FB_CONTRIB_SRC=${HOME}/open_source/github/fb-contrib/ ``` ## 执行流程 ### 步骤1:准备字节码 ```bash mvn compile # Maven gradle classes # Gradle javac -d target/classes src/*.java # 手动 ``` ### 步骤2:执行分析 ```bash # 基础分析 java -jar $SPOTBUGS_JAR -textui -output spotbugs-basic.txt target/classes/ # 含安全检测 java -jar $SPOTBUGS_JAR -textui -output spotbugs-security.txt \ -pluginList $FIND_SEC_BUGS_JAR target/classes/ # 完整分析(所有插件) java -jar $SPOTBUGS_JAR -textui -output spotbugs-full.txt \ -pluginList $FIND_SEC_BUGS_JAR:$FB_CONTRIB_JAR target/classes/ ``` ### 步骤3:特定检测器 ```bash # 仅安全漏洞 java -jar $SPOTBUGS_JAR -textui -output security-only.txt \ -pluginList $FIND_SEC_BUGS_JAR -onlyAnalyze ".*Security.*" target/classes/ # 性能和资源问题 java -jar $SPOTBUGS_JAR -textui -output performance.txt \ -effort:max -visitors "FindDeadLocalStores,FindUnconditionalWait,FindReturnRef" target/classes/ ``` ### 步骤4:生成报告 使用模板 `templates/report.md` 输出分析报告。 ## 配置与过滤 使用模板 `templates/filter.xml` 自定义过滤器: ```bash java -jar $SPOTBUGS_JAR -textui -output filtered.txt \ -exclude filter.xml target/classes/ ``` ## 输出格式 | 格式 | 命令参数 | 用途 | |------|----------|------| | 文本 | `-textui` | 默认,终端查看 | | XML | `-xml` | CI集成 | | HTML | `-html` | 可视化报告 | ## 检测器分类 | 插件 | 主要检测 | 典型Pattern | |------|----------|-------------| | SpotBugs核心 | 空指针、资源泄漏、并发、性能 | IC_SUPERCLASS_USES_SUBCLASS | | Find Security Bugs | SQL注入、XSS、命令注入 | SQL_INJECTION, COMMAND_INJECTION | | fb-contrib | 代码坏味道、命名规范 | LOOP_CAN_BE_WHILE | ## 常用命令 | 场景 | 命令 | |------|------| | 查看所有检测器 | `java -jar $SPOTBUGS_JAR -textui -list` | | 分析特定类 | `java -jar $SPOTBUGS_JAR -textui -onlyAnalyze "com.example.security.*" target/classes/` | | 低阈值(更多问题) | `java -jar $SPOTBUGS_JAR -textui -low target/classes/` | | 高阈值(仅严重) | `java -jar $SPOTBUGS_JAR -textui -high target/classes/` | ## CI/CD集成 ### Maven ```xml <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <version>4.7.3.0</version> <configuration> <effort>Max</effort> <threshold>Low</threshold> </configuration> </plugin> ``` ### Gradle ```groovy plugins { id "com.github.spotbugs" version "5.0.14" } spotbugs { toolVersion = '4.7.3' effort = 'max' reportLevel = 'low' } ``` ## 故障排除 | 问题 | 解决方案 | |------|----------| | Unsupported class file major version | 使用Java 17或更早版本 | | ClassNotFoundException | 检查类路径 | | No classes specified | 确认编译后字节码存在 | | 插件加载失败 | 检查插件JAR路径和版本 | 版本兼容性解决: ```bash export JAVA_HOME=/path/to/java17 java -jar $SPOTBUGS_JAR -textui target/classes/ ``` --- **技能版本**: 1.0.0 **工具版本**: SpotBugs 4.7.3 + Find Security Bugs + fb-contrib **适用项目**: Java 17及以下版本项目
GitHub에서 보기