关于此警告
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 代码。
代码扫描默认设置
- 等待 Kotlin 代码合并到仓库的默认分支。
- 在仓库的 “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 选项,详细说明构建脚本或构建项目所需的步骤。