Java build specification (ビルドスペック) の作成

Klocwork はビルドと統合し、コードストリーム全体の一元表示に必要なすべての情報をキャプチャします。

Klocwork は、この情報を build specification (ビルドスペック) と呼ばれるテキストファイルに保存します。build specification (ビルドスペック) は Klocwork 解析の基盤です。

build specification (ビルドスペック) がビルドの正確かつ最新の情報を表していることは重要です。build specification (ビルドスペック) が不正確な場合、Klocwork 解析も不正確になります。

クイックリファレンスとして、当社のチートシート Java 統合ビルド解析 - チートシートをチェックします。

build specification (ビルドスペック) は統合ビルドとローカルビルドの両方のレベルで必要です。

  • 統合ビルドの場合、build specification (ビルドスペック) の作成はインストール後に必要な最初のタスクです。
  • 一部のデスクトップ環境ではビルド統合は自動的に発生しますが、その他の環境では build specification (ビルドスペック) を手動で作成する必要があります。build specification (ビルドスペック) を手動で作成する必要があるかどうかが不明な場合は、Klocwork Desktop Analysis を使用したチェックイン前の指摘の修正を参照し、コーディング環境を選択してください。

Klocwork Java プロジェクトを、ご使用のビルドファイルの情報に基づいて、1 つまたは複数の build specification (ビルドスペック) から解析することができます。Java プロジェクトの構築に、次の自動化ツールを使用することができます。

  • Gradle: kwgradle コマンドまたは kwgradlew コマンドを使用して、Gradle によって構築したプロジェクトの build specification (ビルドスペック) を生成させることができます。これらのコマンドは、Gradie ビルドをネイティブに呼び出してビルドイベントを収集し、build specification (ビルドスペック) を生成します。
  • Apache Maven: kwmaven コマンドを使用して、Maven によって構築したプロジェクトの build specification (ビルドスペック) を生成させることができます。kwmaven コマンドは、maven ビルドをネイティブに呼び出してビルドイベントを収集し、build specification (ビルドスペック) を生成します。
  • Apache Ant: Ant を使用してビルドされたプロジェクトの build specification (ビルドスペック) を生成する方法には、次の 2 つの方法があります。kwant コマンドを使用して、javac タスクの呼び出しをインターセプトし、build specification (ビルドスペック) を生成しながら Ant スクリプトにより Ant を起動することができます。または、kwant タスクをインクルードするために Ant の build.xml ファイルを編集することができます。

Java プロジェクト用の Klocwork build specification (ビルドスペック) は、セミコロンで区切られたテキストファイルです。このファイルには、Klocwork プロジェクトを構成するソースコードについての次の情報が含まれています。

  • Gradie、Ant または mvn ビルド内で javac 呼び出しに使用されたクラスパスおよび Java のバージョン
  • コンパイルされたソース Java ファイル
  • Java クラスまたは .jar ファイル、あるいはクラスファイルまたは .jars を含むディレクトリ

前提条件

Build specification (ビルドスペック) を作成できるようにするために、

  • Validate パッケージをインストールします。Klocwork のインストール を参照してください。
  • 使用している Gradle のバージョンがサポートされていることを確認します。サポートされているバージョンを確認するには、サポートされている Java ビルドツール を参照してください。
  • Java Development Kit (JDK) の javac を使用する。
  • Gradie、Maven、Ant、および JVM の実行可能ファイルへのパスを、次のように PATH 環境変数で設定しておく必要があります。
    • Unix:
    PATH=<path_to_gradle_mvn_or_ant>/bin:<path_to_JDK>/bin:<klocwork_install>/bin:$PATH
    
    • Windows:
    PATH=<path_to_gradle_mvn_or_ant>\bin;<path_to_JDK>\bin;<klocwork_install>\bin;%PATH%
    

kwgradle を使用した Java build specification (ビルドスペック) の作成

kwgradle で build specification (ビルドスペック) を作成するには:

  1. gradle clean を実行します。
  2. build.gradle ファイルを含むディレクトリに移動します。(gradle の -f オプションを設定してファイル名を指定した場合は、この手順を省略します)。
  3. kwgradle を実行します:
    kwgradle --output /home/klocwork/freemind.out install
     

build specification (ビルドスペック) ファイルのチェック に進みます。

kwgradlew を使用した Java build specification (ビルドスペック) の作成

kwgradlew で build specification (ビルドスペック) を作成するには:

  1. gradle clean を実行します。
  2. gradelew ファイル、または、Wondows 用 gradelew.bat ファイルが含まれるディレクトリーに移動します。
  3. kwgradlew を実行します:
    kwgradlew --output /home/klocwork/freemind.out install
     

build specification (ビルドスペック) ファイルのチェック に進みます。

kwmaven を使用した build specification (ビルドスペック) の作成

kwmaven で build specification (ビルドスペック) を作成するには:

  1. mvn clean を実行します。
  2. pom.xml ファイルを含むディレクトリに移動します。(-f オプションを設定してファイル名を指定した場合は、この手順を省略します)。
  3. kwmaven install を実行します:
    kwmaven --output /home/klocwork/freemind.out install
     

build specification (ビルドスペック) ファイルのチェック に進みます。

kwant を使用した Java build specification (ビルドスペック) の作成

kwant で build specification (ビルドスペック) を作成するには

  1. ant clean を実行します。
  2. build.xml ファイルを含むディレクトリに移動します。(ant の -f オプションを設定してファイル名を指定した場合は、この手順を省略します)。
  3. kwant を実行します。
    kwant --output /home/klocwork/freemind.out
     

build specification (ビルドスペック) ファイルのチェック に進みます。

手動統合 -- Ant ビルドファイルの編集

Ant の build.xml ファイルを編集すると、ビルドの全段階でより優れた制御機能を持つ build specification (ビルドスペック) を生成できます。この編集では、exec-listener タスクを Ant ビルドファイルに追加します。この Ant ビルドファイルは、Klocwork Ant ビルドリスナー (KwAntListener) を使用して、ビルドファイルを作成します。

Ant ビルドファイルを編集して build specification (ビルドスペック) を生成するには:

  1. Ant build.xml ファイルを編集して、kwant taskdef とプロパティをプロジェクトの説明の後に追加します (下の例を参照)。
  2. Ant ビルドを通常通り実行します。

 <project name="MyProject" default="dist" basedir=".">
    <!-- Insert the following code -->
    <property name="kwout" location="kwant.out"/>
    <property name="rep.inst" location="full path to the installation directory"/>
    <!-- Included for integration builds -->
    <property name="buildspecUpdate" value="true"/>
    <taskdef name="exec-listener" classname="com.klocwork.kwant.KwAntListener">
        <classpath>
            <pathelement location="${rep.inst}\class\kwant.jar"/>
            <pathelement location="${rep.inst}\class\buildspec.jar"/>
            <pathelement location="${rep.inst}\class\kwutils.jar"/>
            <pathelement location="${rep.inst}\class\log4j.jar"/>
            <pathelement location="${rep.inst}\class\jdom.jar"/>
            <pathelement location="${rep.inst}\class\commons-io-1.4.jar"/>
            <pathelement location="${rep.inst}\class\datautils.jar"/>
            <pathelement location="${rep.inst}\class\buildutils.jar"/>
       </classpath>
    </taskdef>
    <exec-listener/>
</project> 

出力ファイルは指定した場所に保存されます。これで、プロジェクトのビルドに build specification (ビルドスペック) を使用できるようになりした。

増分モードで実行している場合 (buildspecUpdate プロパティは true に設定)、手動統合ではビルド時にのみコンパイルされたファイルが取り込まれます。以前にコンパイルされたファイルは、解析のために build specification (ビルドスペック) に追加されません。これらのファイルを取得するには、プロジェクトをコンパイルし直す必要があります (例:Ant クリーンビルド)。

.jsp ファイルを含むプロジェクト用の build specification (ビルドスペック)

.jsp ファイルを含むプロジェクトでは、次のように 2 つの build specification (ビルドスペック) を作成します。

  • kwwebappscan を使用した .jsp ファイル用の 1 つの build specification (ビルドスペック)。 kwwebappscan は、ディレクトリをスキャンして .jsp ファイルが含まれている Web アプリケーションディレクトリを検出し、build specification (ビルドスペック) を作成します。このコマンドの詳細については、「kwwebappscan」を参照してください。
  • 前のセクションに説明されている Java ソースファイル用の build specification (ビルドスペック)

プロジェクトで Klocwork 解析を実行するときには、この両方の build specification (ビルドスペック) を使用します。

build specification (ビルドスペック) ファイルのチェック

作成された build specification (ビルドスペック) を開き、jconfigjcompile の各行があるかどうかを確認します。このファイルの形式については、build specification (ビルドスペック) ファイル形式を参照してください。

jconfig 行と jcompile 行がある場合、次のステップJava 統合ビルド解析の実行に移動する準備ができています。

build specification (ビルドスペック) ファイルに jconfig 行または jcompile 行がない場合、以下のいずれかを試してください。

  • プロジェクトに Java ソースファイルが含まれていることを確認する。
  • 代替の統合方法を調べてみる。この記事に説明されている代替方法を参照してください。

build specification (ビルドスペック) の再作成時期

次の場合、build specification (ビルドスペック) を新規作成する必要があります。

  • Klocwork の新しいバージョンにアップグレードする場合
  • ビルド設定を変更する場合
  • クリーンビルドを実行する場合 (ソースファイルの完全再ビルド)

以上の状況で既存の build specification (ビルドスペック) を再利用したり、手動で変更したりすると、解析結果が不正確になります。

次は何?