Skip to main content

Enterprise Server 3.15 は、現在リリース候補として使用できます。

警告: ビルドなしでは処理できない X Kotlin ファイルがプロジェクト内で検出されました

CodeQL データベースは、コードをビルドしなくても Java 用に作成できますが、Kotlin ファイルはコードがビルドされない限り除外されます。

この警告について

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 を実行した場合に報告されます。

警告の原因を確認する

この警告は、Java ファイルと Kotlin ファイルの両方を含むリポジトリに対してビルド モード none が使用されている場合にのみ表示されます。

CodeQL アクションと CodeQL CLI では、Java のビルド モード none がサポートされます。 これにより、コードベースをビルドしなくても Java コードの分析を簡単に有効にできます。 ただし、Kotlin ファイルは、結果として生成される CodeQL データベースには含まれません。

警告をトリガーしたリポジトリまたは pull request を調べることで、Kotlin ファイルの存在を確認できます。 none ビルド モードは、次の状況でのみ使用されます。

  • Code scanning は、Kotlin コードが追加される前、および新しいモードが導入された後に (以前は autobuild モードを使用)、リポジトリに対して有効になりました。
  • CodeQL ワークフローでは、リポジトリのビルド モード none が指定されます (build-mode: none を確認)。
  • CodeQL CLI の呼び出しには、--command ではなく --build-mode none を使用します。

問題を修正する

Kotlin ファイルを分析する必要がない場合は、警告メッセージを無視できます。

Kotlin ファイルも含むように分析を更新する場合は、CodeQL で Java コードと Kotlin コードをビルドする必要があります。

Code scanning の既定の設定

  1. Kotlin コードがリポジトリの既定のブランチにマージされるまで待機します。
  2. リポジトリの [設定] ページで既定のセットアップを無効にしてから、再度有効にします。

これにより、ビルドの自動検出を使用した新しい分析がトリガーされます。 「コード スキャンの既定セットアップの構成」と「Java と Kotlin のビルド」を参照してください。

ビルドの自動検出が失敗した場合は、プロジェクトの正しいビルド コマンドを備えた高度なセットアップを使用して、両方の言語を分析する必要があります。

Code scanning の高度なセットアップ

既に高度なセットアップを使用している場合は、CodeQL ワークフローを編集し、java-kotlin のビルド モードを none から autobuild に変更してプロジェクトを自動的にビルドするか、manual に変更して独自のビルド ステップを指定することができます。 「Java と Kotlin のビルド。」

既定のセットアップから高度なセットアップに変換する必要がある場合は、リポジトリの [設定] ページで高度なセットアップを有効にし、CodeQL ワークフローを作成する必要があります。 次に、java-kotlinmanual ビルド モードを定義すると、プロジェクトのビルド コマンドを定義できます。

CodeQL CLI を直接実行する

リポジトリと pull request の CodeQL CLI を実行するように呼び出しを更新し、--build-mode none--build-mode autobuild に置き換えてビルドの自動検出を試行します。 ビルドの自動検出が失敗した場合は、--build-mode オプションを削除し、プロジェクトのビルドに必要なビルド スクリプトやビルド ステップの詳細を示す 1 つ以上の --command オプションを含めます。

参考資料