跳至主要内容

警告:在您的项目中检测到 X 个 Kotlin 文件,未进行构建无法处理

可以在不构建代码的情况下为 Java 创建 CodeQL 数据库,但除非进行构建,否则 Kotlin 文件会被排除。

关于此警告

Warning: Detected X Kotlin files in your project that could not be processed without a build. To process these files...

当仓库在使用 none(默认设置)的构建模式进行 Java 的 CodeQL 代码扫描时检测到 Kotlin 文件,或当您使用 --build-mode none 对包含 Java 和 Kotlin 文件的仓库运行 CodeQL CLI 时,会报告此警告。

确认警告原因

仅当对同时包含 Java 和 Kotlin 文件的仓库使用 none 构建模式时才会显示此警告。

CodeQL Action 和 CodeQL CLI 支持 Java 的 none 构建模式。这提供了一种无需构建代码库即可对 Java 代码进行分析的简便方式。然而,Kotlin 文件不会包含在生成的 CodeQL 数据库中。

您可以通过查看触发此警告的仓库或拉取请求来验证 Kotlin 文件的存在。none 构建模式仅在以下情况中使用

  • 在添加 Kotlin 代码之前,已为该仓库启用了代码扫描,并在引入新模式后(之前会使用 autobuild 模式)
  • CodeQL 工作流为仓库指定了 none 构建模式(检查是否有 build-mode: none)。
  • 调用 CodeQL CLI 时未使用 --command,并使用了 --build-mode none

解决问题

如果您不想分析 Kotlin 文件,则可以忽略此警告信息。

如果您希望将分析更新为同时包含 Kotlin 文件,则 CodeQL 需要构建 Java 和 Kotlin 代码。

代码扫描默认设置

  1. 等待 Kotlin 代码合并到仓库的默认分支。
  2. 在仓库的 “Settings” 页面上先禁用再重新启用默认设置。

这将触发使用自动构建检测的新分析。请参阅 配置代码扫描的默认设置构建 Java 和 Kotlin

如果自动构建检测失败,您需要使用高级设置并提供项目的正确构建命令,以便分析两种语言。

代码扫描高级设置

如果您已经使用高级设置,可以编辑 CodeQL 工作流,将 java-kotlin 的构建模式从 none 更改为 autobuild(自动构建项目)或 manual(指定您自己的构建步骤)。构建 Java 和 Kotlin

如果您需要从默认设置转换为高级设置,需要在仓库的 “Settings” 页面上启用高级设置并创建 CodeQL 工作流。然后,您可以为 java-kotlin 定义 manual 构建模式,并为项目指定构建命令。

直接运行 CodeQL CLI

更新对仓库和拉取请求运行 CodeQL CLI 的调用,将 --build-mode none 替换为 --build-mode autobuild,以尝试自动构建检测。如果自动构建检测失败,请移除 --build-mode 选项,并添加一个或多个 --command 选项,详细说明构建脚本或构建项目所需的步骤。

延伸阅读

© . This site is unofficial and not affiliated with GitHub, Inc.