sportbugs报告路径在linux和windows中的配置差异
sportbugs非常诡异的地方,报告的路径在linux和windows上配置参数不一致。特别记录下,遇到几次没有输出报告的问题,最后都是因为linux参数拿到windows这边来用导致的。
linux中直接用-sarif参数即可配置输出报告路径。
-sarif=/xxx/xxx/report.sarif.json
而如果在windows上使用相同配置,则会提示配置的文件不存在或者不可读,这里其实文件不存在也会自动创建的,容易被这个提示误导。最终没生成报告文件,而是默认的直接把报告输出到控制台。
Ignoring unreadable or non-existent file D:\xxx\java-test-suite\spring-boot\report.sarif.json
windows上需要用参数-output来指定输出报告到哪个文件。如果需要输出sarif报告还需要加上-sarif参数。
-sarif
-output D:\xxx\java-test-suite\spring-boot\report.sarif.json
windows中spotbugs命令:
%SPOTBUGS_HOME%\bin\spotbugs ^
-javahome D:\xxx\jdk-17.0.10+7 ^
-jvmArgs "-Duser.language=en -Dfindbugs.debug=true" ^
-maxHeap 3072 ^
-textui ^
-auxclasspath D:\xxx\java-test-suite\spring-boot\libs ^
-sourcepath C:\Users\xxx\Desktop\中文目录\src\main\java ^
-sarif ^
-output D:\xxx\java-test-suite\spring-boot\report.sarif.json ^
C:\Users\xxx\Desktop\中文目录\spring-boot-0.0.1-SNAPSHOT.jar
linux中spotbugs命令:
./spotbugs-4.8.3/bin/spotbugs \
-javahome /home/xxx/jdk/jdk1.8.0_202 \
-jvmArgs "-Duser.language=en" \
-maxHeap 3072 \
-textui \
-auxclasspath ./be-analyzed-depend \
-sourcepath ./source-code \
-sarif=./report.sarif.json \
-sourcepath /home/xxx/sourcepath \
-dontCombineWarnings \
./be-analyzed-class ./be-analyzed-jar