背景:
IDEA安装的findbug插件目前无法和jenkins的扫描结果保持一致,因为:没有对应jenkins上findbug的版本;
原理:
将jenkins服务器上的findbugs插件,拷贝到本地,修改build.xml内容以匹配目录。
安装:
1、 压缩包解压到工程的根目录下,即与src同级,解压文件包不要嵌套,如下图;
2.环境变量配置
3.新建:build.xml文件,拷贝以下代码:
<?xml version="1.0" ?>
<project name="check" default="default" basedir=".">
<!--源码路径从build.xml文件开始-->
<property name="src.dir" value="${basedir}/src" />
<!--class文件位置-->
<property name="class.dir" value="${basedir}/target/classes" />
<!---->
<property name="dist.dir" value="${basedir}/dist" />
<!---->
<property name="findbugs.dir" value="${basedir}/findbugs-3.0.1"/>
<path id="findbugs.path">
<fileset dir="${findbugs.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- =================================================================== -->
<!-- Findbugs build -->
<!-- =================================================================== -->
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpathref="findbugs.path" />
<target name="findbugs" >
<mkdir dir="${basedir}/findbugs" />
<!--输出文件格式及文件 outputFile="${basedir}/findbugs/findbugs_errors.html -->
<findbugs home="${findbugs.dir}" output="html" outputFile="${basedir}/findbugs/findbugs_errors.html" excludeFilter="${findbugs.dir}/tool/findbugs_exclude.xml">
<sourcePath path="${src.dir}" />
<class location="${class.dir}" />
</findbugs>
</target>
<target name="default" depends="findbugs">
</target>
</project>
将build.xml文件移到与src同级的根目录下;
4.cmd 测试:输入命令:ant -version
出现如图所示则安装成功;
5.代码分析检视;
5.1 打开项目工程至:findbugs-3.0.1文件夹的目录下;
路径输入cmd:回车;如图所示:
5.2 在黑窗口输入命令:ant -f build.xml 回车
5.3 出现:BUILD SUCCESSFUL 则显示代码检视构建完成;
在项目工程根目录下生成一个文件夹:打开
5.4 打开里面生成的html文件
查看内容:如图所示:
High Priority Warnings: 高风险没有;
Medium Priority Warnings:中风险7条;
一般只修改高风险;
5.5 查看风险的具体位置:这里会显示是哪个文件,哪个方法,还有代码行数具体位置,去修改即可;