关于此警告
Warning: Detected X Kotlin files in your project that could not be processed without a build. To process these files...
在使用 CodeQL(默认设置)构建模式为 Java 运行 code scanningnone 的存储库中检测到 Kotlin 文件时,或者如果您使用 CodeQL CLI 对包含 Java 和 Kotlin 文件的存储库运行 --build-mode none,则会报告此警告。
确认警告原因
仅当生成模式 none 用于包含 Java 和 Kotlin 文件的存储库时,才会显示此警告。
CodeQL 操作和 CodeQL CLI 支持适用于 Java 的 none 构建模式。 这提供一种简单方法,可在不生成代码库的情况下分析 Java 代码。 但是,生成的数据库中不包含 CodeQL Kotlin 文件。
可通过查看存储库或触发警告的拉取请求,验证是否存在 Kotlin 文件。 仅在以下情况下使用 none 生成模式:
- 在向该存储库添加 Kotlin 代码之前,且在推出新模式之后,已为该存储库启用 Code scanning(此前本会使用
autobuild模式)。 - CodeQL工作流为该仓库指定了
none构建模式(检查build-mode: none)。 - 调用 CodeQL CLI 时不使用
--command但使用--build-mode none。
修复问题
如果并不想分析 Kotlin 文件,则可以忽略此警告消息。
如果要更新分析以包含 Kotlin 文件,则需要CodeQL生成 Java 和 Kotlin 代码。
Code scanning 默认设置
- 等到 Kotlin 代码合并到存储库的默认分支中。
- 在存储库的“设置”页上禁用并重新启用默认设置。
这将使用自动构建检测来触发新的分析。 请参阅“配置代码扫描的默认设置”和“构建 Java 和 Kotlin”。
如果自动构建检测失败,您需要使用高级设置,并为项目提供正确的构建命令,以分析这两种语言。
Code scanning 高级设置
如果您已在使用高级设置,则可以编辑CodeQL工作流,并将java-kotlin的构建模式从none更改为autobuild以自动构建项目,或更改为manual以指定您自己的构建步骤。
构建 Java 和 Kotlin。
如果需要从默认设置转换为高级设置,则需要在存储库的“设置”页上启用高级设置并创建 CodeQL 工作流。 然后,可以定义 manual 项目的生成模式 java-kotlin 并定义生成命令。
直接运行 CodeQL CLI
更新您的调用以为存储库和并拉取请求运行 CodeQL CLI,从而将 --build-mode none 替换为 --build-mode autobuild 以尝试自动生成检测。 如果自动生成检测失败,请删除 --build-mode 选项,并包含一个或多个 --command 详细描述生成脚本或生成项目所需的步骤的选项。