# 警告：检测到项目中有 X 个 Kotlin 文件，需经过构建才能进行处理。

CodeQL可以在不生成代码的情况下为Java创建数据库，但除非生成代码，否则会排除 Kotlin 文件。

## 关于此警告

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

在使用 CodeQL（默认设置）构建模式为 Java 运行 code scanning`none` 的存储库中检测到 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 默认设置

1. 等到 Kotlin 代码合并到存储库的默认分支中。
2. 在存储库的“设置”页上禁用并重新启用默认设置。

这将使用自动构建检测来触发新的分析。 请参阅“[配置代码扫描的默认设置](/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)”。

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

### Code scanning 高级设置

如果您已在使用高级设置，则可以编辑CodeQL工作流，并将`java-kotlin`的构建模式从`none`更改为`autobuild`以自动构建项目，或更改为`manual`以指定您自己的构建步骤。
[构建 Java 和 Kotlin](/zh/code-security/reference/code-scanning/codeql/build-options-for-compiled-languages#building-java-and-kotlin)。

如果需要从默认设置转换为高级设置，则需要在存储库的“设置”页上启用高级设置并创建 CodeQL 工作流。 然后，可以定义 `manual` 项目的生成模式 `java-kotlin` 并定义生成命令。

### 直接运行 CodeQL CLI

更新您的调用以为存储库和并拉取请求运行 CodeQL CLI，从而将 `--build-mode none` 替换为 `--build-mode autobuild` 以尝试自动生成检测。 如果自动生成检测失败，请删除 `--build-mode` 选项，并包含一个或多个 `--command` 详细描述生成脚本或生成项目所需的步骤的选项。

## 延伸阅读

* [配置代码扫描的高级设置](/zh/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configuring-advanced-setup-for-code-scanning)
* [构建 Java 和 Kotlin](/zh/code-security/reference/code-scanning/codeql/build-options-for-compiled-languages#building-java-and-kotlin)
* [CodeQL 构建模式](/zh/code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/codeql-for-compiled-languages#compare-build-modes)