解析ラッパースクリプトの作成と使用

Klocwork 2025.4 以降では、ポータブル環境ブートストラップファイルを生成するラッパースクリプトを作成して、ローカルに事前にインストールされているツールを必要とせずに解析が実行されるようにすることができます。ラッパーを使用すると、手動でセットアップせずに解析のための環境を準備することができ、一時的な環境やコンテナ化環境でのゼロインストールオンボーディングに最適です。

ラッパースクリプトは実行時に以下のことを行います。

  • 認証資格情報を検証し、必要なツールをチェックする

  • まだツールキャッシュにないビルドツールがある場合は、ツールストアからダウンロードする。ラッパースクリプトを使用するには、最新リリースのビルドツールが含まれているツールストアと、サーバーで使用されるレガシーツールがが必要であることに注意してください。

  • 以下のような、重要な環境変数を設定する

    • PATH:最新の kwanalysis ビルドツールが含まれるように更新されます。

    • KW_PROJECT_NAME:解析対象のプロジェクトの名前。

    • KW_BUILDTOOLS_LOCATION:最新の kwanalysis ビルドツールが保存されるディレクトリ。

    • デフォルトの Validation URL:解析中に Validate サーバーに接続するために使用されます。

ラッパースクリプトは起動時にツールストアから認証ツールをダウンロードするということに注意してください。以降は、解析を実行するたびに必要なツールがツールストアから再度取得されます。ツールストアのセットアップの詳細については、「解析ツールストアの使用」を参照してください。

ラッパースクリプトの作成

ラッパースクリプトを作成するには、kwanalysis wrapper を以下のように使用します。

kwanalysis wrapper --project <project-name>

以下のファイルが作成されます。

  • kwanalysisw.sh

  • kwanalysisw.cmd

  • kwanalysisw.ps1

  • ブートストラップ JAR:.kwanalysis/kwanalysisbootstrap.jar

  • プロパティファイル:.kwanaosis/kwanaosis.properties (デフォルト)

複数のプロジェクトに対して複数のプロパティファイルを生成する場合は、以下のコマンドを実行します。

kwanalysis wrapper --project <project_name> --properties <insert_name_of_properties_file> --properties-only

ラッパースクリプトの実行

このコマンドを使用してラッパースクリプトを呼び出します。

  • Linux:source kwanalysisw.sh

  • Windows PowerShell:..\kwanalysisw.ps1

  • Windows コマンドライン:kwanalysisw.cmd --apply

注記:

  • 環境変数を永続化するにはソーシングを使用する必要があります。Linux または PowerShell では、スクリプト終了後も環境変数がアクティブ状態に維持されるようにするため、スクリプト (たとえば、source kwanalysis.sh. .\Kwanalysissw.ps1 など) をソーシングする必要があります。

  • CMD を使用する場合、--apply オプションは 1 つのセッションのみの環境変数を設定します。それらは、シェルが閉じると、失われます。

  • スクリプトは、不足しているツールバージョンを自動的に解決します。必要なバージョンがローカルで見つからない場合、スクリプトは、構成されたツールストアからそれをダウンロードするか、またはそれを解決します。

  • スクリプトは、以下の複数の認証方式をサポートしています。

    • ユーザー名/パスワード:インタラクティブとスクリプトの両方で機能します。

    • アプリケーション:非インタラクティブであり、完全なスクリプト化が可能であるなため、CI パイプラインで推奨されます。

    • 提供された認証トークン:スクリプトベースのワークフローについてもサポートされます。

    • モダン認証:インタラクティブ専用であり、デベロッパーデスクトップに適しています。モダン認証が必要な場合は、ラッパーが認証フローを自動的に起動します。

ラッパースクリプトによる下位互換解析の実行

この例では、ラッパースクリプトを使用してエンドツーエンドの下位互換解析を実行する方法を示します。

ステップ 1:ワンタイムセットアップ

  1. プロジェクトをロックします (オプション)。

    kwadmin analysis-tool-version --tool-version 25.2 --tool-location /opt/klocwork/25.2/buildtools MyProject
  2. ラッパースクリプトを生成してチェックインします。

    kwanalysis wrapper --project MyProject

    すると、以下のものが作成されます。

    • kwanalysisw.sh (Linux)

    • kwanalysisw.ps1 (PowerShell)

    • .kwanalysis/ 内の Bootstrap JAR とプロパティファイル

ステップ 2:解析

buildproject ワークフローの場合:

  1. ラッパースクリプトをソーシングします。

    Linux:

    source kwanalysisw.sh --application-token myAppToken123

    PowerShell:

    。.\kwanalysisw.ps1 --application-token myAppToken123
  2. build specification (ビルドスペック) を作成します。

    kwinject -w -o kwinject.out bash build.sh
  3. 解析を実行します (オプションで、チェッカーも同期します)。

    kwanalysis buildproject [--sync-checkers] --project MyProject -f -o kw_tables kwinject.out
  4. 結果を Validate にロードします。

    kwadmin load MyProject kw_tables

CI エージェントワークフローの場合:

  1. ラッパースクリプトをソーシングします。

    Linux:

    source kwanalysisw.sh --application-token myAppToken123

    PowerShell:

    。.\kwanalysisw.ps1 --application-token myAppToken123
  2. build specification (ビルドスペック) を作成します。

    kwinject -w -o kwinject.out bash build.sh
  3. CI エージェントのカスタムチェッカーを同期します (オプション)。

    kwanalysis deploy sync --tool-location /opt/klocwork/25.2/buildtools
  4. CI エージェント解析を実行し、CI ビルドを作成します。

    kwanalysis ciagent --project MyProject --ci-build build_456
kwanalysis ciagent は、バージョン 2022.4 以降にロックされているプロジェクトの CI ビルドを作成することができます。CI ビルドは、2023.1 で導入されたため、この機能は下位互換性をサポートしています。