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