gpt4 book ai didi

java - 如何从代码中获取作为 java 对象的 PMD 结果报告?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:08:45 26 4
gpt4 key购买 nike

我正在编写类似于 PMD 包装器的东西(目标是使用 PMD 检查 java 代码,但具有某些功能),pmd-corepmd-java像外部库一样包含在我的项目中,我正在以这种方式执行 PMD:

int violations = PMD.doPMD(configuration);

doPMD返回发现的违规次数。通过配置reportFormatPMDConfiguration我们可以将输出设置为 System.out或使用一种可用的报告格式(如 xml、html、文本等)进行归档,但是...

如何将 PMD 结果(所有源文件的处理结果)报告为 java 对象?也许,有可能得到 list<>所有 RuleViolations 或其他东西。

最佳答案

您可以使用自定义Renderer

  1. 创建 net.sourceforge.pmd.renderers.Renderer 的自定义实现
  2. 在您的配置 调用setReportFormat 传递您的自定义渲染器的完全限定名称(即:"my.organization.package.InMemoryRenderer" )
  3. 像您一样运行分析

在分析过程中,您的渲染器将只实例化一次,并且将为每个文件的结果调用 renderFileReport(Report) 方法。 报告 has method's to obtain and iterate over violations, config and execution errors .

如您所愿,这些是作为 POJO 提供的。

您将无法访问 Renderer 实例,但您可以将数据存储在静态成员中(确保在 PMD 运行多线程分析时保持线程安全!)并提供静态 getter .

关于java - 如何从代码中获取作为 java 对象的 PMD 结果报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49693884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com