如何在 gradle findbugs 插件中将报告的错误打印到控制台?
How can I print reported bugs to console in gradle findbugs plugin?
我正在使用 Gradle FindBugs 插件。如何将报告的错误打印到控制台? PMD 插件有一个 consoleOutput 属性。 FindBugs 有类似的 属性 吗?
如您所见hereFindBugs 插件没有这样的属性或配置可能性。但是,该插件似乎可以通过某种方式进行自定义。例如。通过解析和显示结果。
见here and 。
这是最基本的...但这是一个开始
task checkFindBugsReport << {
def xmlReport = findbugsMain.reports.xml
if (!xmlReport.destination.exists()) return;
def slurped = new XmlSlurper().parse(xmlReport.destination)
def report = ""
slurped['BugInstance'].eachWithIndex { bug, index ->
report += "${index + 1}. Found bug risk ${bug.@'type'} of category ${bug.@'category'} "
report += "in the following places"
bug['SourceLine'].each { place ->
report += "\n ${place.@'classname'} at lines ${place.@'start'}:${place.@'end'}"
}
}
if (report.length() > 1) {
logger.error "[FINDBUGS]\n ${report}"
}
}
findbugsMain.finalizedBy checkFindBugsReport
您可以使用 Violations Gradle Plugin 做到这一点。它配置有模式来识别报告文件并在 check
之后 运行。会
- 将所有静态代码分析工具汇总到一个统一的报告中。
- 将其打印到构建日志。
- 如果违规太多,可选择使构建失败。
Findbugs/Spotbugs 附带一个 class,可以 运行 分析后,读取 xml 报告并打印到 text/html。它包含在 findbugs/spotbugs.jar 文件中。
<java classname="edu.umd.cs.findbugs.PrintingBugReporter" fork="true">
<arg value="${build.dir}/findbugs/findbugs-test-report.xml"/>
<classpath path="${spotbugs.home}/lib/spotbugs.jar"/>
</java>
与运行ning
相同
java -cp path/to/spotbugs.jar edu.umd.cs.findbugs.PrintingBugReporter path/to/findbugs-report.xml
它有一个 -html
选项,将呈现 html。
在gradle/maven中实现相同的应该是可行的。
我正在使用 Gradle FindBugs 插件。如何将报告的错误打印到控制台? PMD 插件有一个 consoleOutput 属性。 FindBugs 有类似的 属性 吗?
如您所见hereFindBugs 插件没有这样的属性或配置可能性。但是,该插件似乎可以通过某种方式进行自定义。例如。通过解析和显示结果。
见here and
这是最基本的...但这是一个开始
task checkFindBugsReport << {
def xmlReport = findbugsMain.reports.xml
if (!xmlReport.destination.exists()) return;
def slurped = new XmlSlurper().parse(xmlReport.destination)
def report = ""
slurped['BugInstance'].eachWithIndex { bug, index ->
report += "${index + 1}. Found bug risk ${bug.@'type'} of category ${bug.@'category'} "
report += "in the following places"
bug['SourceLine'].each { place ->
report += "\n ${place.@'classname'} at lines ${place.@'start'}:${place.@'end'}"
}
}
if (report.length() > 1) {
logger.error "[FINDBUGS]\n ${report}"
}
}
findbugsMain.finalizedBy checkFindBugsReport
您可以使用 Violations Gradle Plugin 做到这一点。它配置有模式来识别报告文件并在 check
之后 运行。会
- 将所有静态代码分析工具汇总到一个统一的报告中。
- 将其打印到构建日志。
- 如果违规太多,可选择使构建失败。
Findbugs/Spotbugs 附带一个 class,可以 运行 分析后,读取 xml 报告并打印到 text/html。它包含在 findbugs/spotbugs.jar 文件中。
<java classname="edu.umd.cs.findbugs.PrintingBugReporter" fork="true">
<arg value="${build.dir}/findbugs/findbugs-test-report.xml"/>
<classpath path="${spotbugs.home}/lib/spotbugs.jar"/>
</java>
与运行ning
相同java -cp path/to/spotbugs.jar edu.umd.cs.findbugs.PrintingBugReporter path/to/findbugs-report.xml
它有一个 -html
选项,将呈现 html。
在gradle/maven中实现相同的应该是可行的。