{"meta":{"title":"警告：检测到项目中有 X 个 Kotlin 文件，需经过构建才能进行处理。","intro":"CodeQL可以在不生成代码的情况下为Java创建数据库，但除非生成代码，否则会排除 Kotlin 文件。","product":"安全性和代码质量","breadcrumbs":[{"href":"/zh/code-security","title":"安全性和代码质量"},{"href":"/zh/code-security/reference","title":"Reference"},{"href":"/zh/code-security/reference/code-scanning","title":"代码扫描"},{"href":"/zh/code-security/reference/code-scanning/troubleshoot-analysis-errors","title":"排查与解决分析错误"},{"href":"/zh/code-security/reference/code-scanning/troubleshoot-analysis-errors/kotlin-detected-in-no-build","title":"在没有构建的情况下检测到 Kotlin"}],"documentType":"article"},"body":"# 警告：检测到项目中有 X 个 Kotlin 文件，需经过构建才能进行处理。\n\nCodeQL可以在不生成代码的情况下为Java创建数据库，但除非生成代码，否则会排除 Kotlin 文件。\n\n## 关于此警告\n\n```text\nWarning: Detected X Kotlin files in your project that could not be processed without a build. To process these files...\n```\n\n在使用 CodeQL（默认设置）构建模式为 Java 运行 code scanning`none` 的存储库中检测到 Kotlin 文件时，或者如果您使用 CodeQL CLI 对包含 Java 和 Kotlin 文件的存储库运行 `--build-mode none`，则会报告此警告。\n\n## 确认警告原因\n\n仅当生成模式 `none` 用于包含 Java 和 Kotlin 文件的存储库时，才会显示此警告。\n\nCodeQL 操作和 CodeQL CLI 支持适用于 Java 的 `none` 构建模式。 这提供一种简单方法，可在不生成代码库的情况下分析 Java 代码。 但是，生成的数据库中不包含 CodeQL Kotlin 文件。\n\n可通过查看存储库或触发警告的拉取请求，验证是否存在 Kotlin 文件。 仅在以下情况下使用 `none` 生成模式：\n\n* 在向该存储库添加 Kotlin 代码之前，且在推出新模式之后，已为该存储库启用 Code scanning（此前本会使用 `autobuild` 模式）。\n* CodeQL工作流为该仓库指定了 `none` 构建模式（检查 `build-mode: none`）。\n* 调用 CodeQL CLI 时不使用 `--command` 但使用 `--build-mode none`。\n\n## 修复问题\n\n如果并不想分析 Kotlin 文件，则可以忽略此警告消息。\n\n如果要更新分析以包含 Kotlin 文件，则需要CodeQL生成 Java 和 Kotlin 代码。\n\n### Code scanning 默认设置\n\n1. 等到 Kotlin 代码合并到存储库的默认分支中。\n2. 在存储库的“设置”页上禁用并重新启用默认设置。\n\n这将使用自动构建检测来触发新的分析。 请参阅“[配置代码扫描的默认设置](/zh/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configure-code-scanning)”和“[构建 Java 和 Kotlin](/zh/code-security/reference/code-scanning/codeql/build-options-for-compiled-languages#building-java-and-kotlin)”。\n\n如果自动构建检测失败，您需要使用高级设置，并为项目提供正确的构建命令，以分析这两种语言。\n\n### Code scanning 高级设置\n\n如果您已在使用高级设置，则可以编辑CodeQL工作流，并将`java-kotlin`的构建模式从`none`更改为`autobuild`以自动构建项目，或更改为`manual`以指定您自己的构建步骤。\n[构建 Java 和 Kotlin](/zh/code-security/reference/code-scanning/codeql/build-options-for-compiled-languages#building-java-and-kotlin)。\n\n如果需要从默认设置转换为高级设置，则需要在存储库的“设置”页上启用高级设置并创建 CodeQL 工作流。 然后，可以定义 `manual` 项目的生成模式 `java-kotlin` 并定义生成命令。\n\n### 直接运行 CodeQL CLI\n\n更新您的调用以为存储库和并拉取请求运行 CodeQL CLI，从而将 `--build-mode none` 替换为 `--build-mode autobuild` 以尝试自动生成检测。 如果自动生成检测失败，请删除 `--build-mode` 选项，并包含一个或多个 `--command` 详细描述生成脚本或生成项目所需的步骤的选项。\n\n## 延伸阅读\n\n* [配置代码扫描的高级设置](/zh/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configuring-advanced-setup-for-code-scanning)\n* [构建 Java 和 Kotlin](/zh/code-security/reference/code-scanning/codeql/build-options-for-compiled-languages#building-java-and-kotlin)\n* [CodeQL 构建模式](/zh/code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/codeql-for-compiled-languages#compare-build-modes)"}