任何人都知道如何在独立的 Java 项目中使用 Checkstyle API 来访问有关 Java 文件或项目的 AST 或循环数的信息?
因为我发现的都是关于使用它作为一个整体并定义评估规则,但我只需要以编程方式检索统计信息而不使用评估。我知道使用 JDT AST 是可以的,但它不提供用于计算某些指标的函数。
先谢谢了。
任何人都知道如何在独立的 Java 项目中使用 Checkstyle API 来访问有关 Java 文件或项目的 AST 或循环数的信息?
因为我发现的都是关于使用它作为一个整体并定义评估规则,但我只需要以编程方式检索统计信息而不使用评估。我知道使用 JDT AST 是可以的,但它不提供用于计算某些指标的函数。
先谢谢了。
嗯... Checkstyle 并不是真的要成为构建第三方静态代码分析工具的工具包。我建议改为查看ANTLR项目。它是一个非常好的 Java 解析器,它可能已经完成了您需要的工作。
Checkstyle 在后台使用 ANTLR。您可以通过下载Checkstyle 源代码来了解他们是如何做到的。这也揭示了他们的圈复杂度实现背后的逻辑。
但是,通常可以使用 Checkstyle 作为非 Checkstyle 的框架。您可以通过编写 Checkstyle 检查来做到这一点,这基本上意味着编写Check
. 然后,您可以按照链接中的说明配置 Checkstyle 以运行您的课程。
如果您想简单地收集 Checkstyle 生成的指标以在 Checkstyle 之上在您自己的应用程序中使用,那么我建议您正常运行 Checkstyle 并评估其报告,例如通过实现一个侦听器或通过解析通过调用它创建的 Checkstyle 的 XML 输出命令行-f xml
选项。
PS根据您对 JDT AST 的引用,我假设您使用的是 Java。如果是这样,您可能希望将java标签添加到您的问题中以获得更多答案。