任何人都知道如何在独立的 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标签添加到您的问题中以获得更多答案。