用于 Java 和 Kotlin 的 CodeQL¶
实验和学习如何为从 Java 和 Kotlin 代码库生成的 CodeQL 数据库编写有效且高效的查询。
注意
目前 Kotlin 的 CodeQL 分析处于测试阶段。在测试阶段,对 Kotlin 代码的分析以及相关文档将不像其他语言那样全面。
启用 Kotlin 支持
CodeQL 将 Java 和 Kotlin 视为同一语言的一部分,因此要启用 Kotlin 支持,您应该启用
java-kotlin
作为一种语言。
- 用于 Java 和 Kotlin 代码的基本查询: 学习编写和运行简单的 CodeQL 查询。
- 用于 Java 和 Kotlin 的 CodeQL 库: 在分析 Java/Kotlin 代码时,您可以使用 CodeQL 库中用于 Java/Kotlin 的大量类。
- 分析 Java 和 Kotlin 中的数据流: 您可以使用 CodeQL 来跟踪数据在 Java/Kotlin 程序中的流向及其使用情况。
- Java 和 Kotlin 类型: 您可以使用 CodeQL 来了解 Java/Kotlin 代码中使用的数据类型。这使您可以编写查询来识别特定与类型相关的错误。
- Java 和 Kotlin 中易溢出的比较: 您可以使用 CodeQL 来检查 Java/Kotlin 代码中的比较,其中一侧的比较易溢出。
- 导航调用图: CodeQL 包含用于识别调用其他代码的代码以及可以从其他地方调用的代码的类。这使您可以找到例如从未使用过的方法。
- Java 和 Kotlin 中的注解: Java/Kotlin 项目的 CodeQL 数据库包含有关附加到程序元素的所有注解的信息。
- Javadoc: 您可以使用 CodeQL 来查找 Java 代码中 Javadoc 注释中的错误。
- 使用源位置: 您可以使用 Java/Kotlin 代码中实体的位置来查找潜在的错误。位置使您能够推断空格的存在或不存在,在某些情况下,这可能表明存在问题。
- 用于处理 Java 和 Kotlin 程序的抽象语法树类: CodeQL 包含大量用于表示 Java/Kotlin 程序的抽象语法树的类。
- 为 Java 和 Kotlin 自定义库模型: 您可以使用数据扩展来建模代码库依赖的框架和库,并将它们发布为 CodeQL 模型包。