Jtest 2023.1 Dockerチュートリアル

Docker HubにJtestの公式Dockerイメージが公開されて利用できるようになりました。

公式Dockerイメージは日本語化がされていません。日本語で利用したい場合は、以下に添付したDockerfileで日本語化されたDockerイメージをビルドして利用ください。

要件

  • Dockerを利用できる環境であること

  • インターネットに繋がる環境であること

  • コマンドライン実行可能なJtestのフローティングライセンスが利用できる環境であること

日本語環境の利用手順

JtestのDockerコンテナを利用してホストにあるJavaプロジェクトに静的解析を実行します。
Dockerfileを編集してJavaプロジェクトをビルドできる環境がセットアップ済みのDockerイメージをビルドして静的解析を実行します。
手順のコマンド例は、Linux環境でDockerを利用していることを想定しています。

Mavenプロジェクトの静的解析

  1. ホストの任意のディレクトリにMavenプロジェクトを配置します

    • この例ではMavenプロジェクトはホストの現在の作業ディレクトリ($PWD)にあります。

  2. Mavenプロジェクト直下に設定ファイルを配置します

  3. 添付のDockerfileを編集してJtestのDockerイメージにMavenのビルド環境をインストールするように設定します

    • Dockerfile編集例

      ... # install maven 3.6.3 WORKDIR /opt RUN wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip && \ unzip apache-maven-3.6.3-bin.zip && \ rm -f apache-maven-3.6.3-bin.zip USER parasoft:parasoft WORKDIR /home/parasoft ENV PATH=/opt/apache-maven-3.6.3/bin:${PATH}
  4. 編集したDockerfileでDockerイメージをビルドします

    • コマンド例

      docker build -t <任意のイメージ名>:<任意のタグ> .
  5. 静的解析を実行します

    • コマンド例

      docker run --rm \ -v $PWD:$PWD \ -w $PWD \ <手順4でビルドしたDockerイメージ名:タグ> \ mvn package jtest:jtest -s $PWD/settings.xml \ -Djtest.config="builtin://Recommended Rules" \ -Djtest.settings=$PWD/jtestcli.properties \ -Djtest.report=$PWD/reports
  6. ホストのMavenプロジェクト直下のreportsディレクトリからJtestレポートファイルを確認します

Gradleプロジェクトの静的解析

  1. ホストの任意のディレクトリにGradleプロジェクトを配置します

    • この例ではGradleプロジェクトはホストの現在の作業ディレクトリ($PWD)にあります。

  2. Gradleプロジェクト直下に設定ファイルを配置します

  3. 添付のDockerfileを編集してDockerイメージにGradleのビルド環境をインストールします

    • Dockerfile編集例

  4. 編集したDockerfileでDockerイメージをビルドします

    • コマンド例

  5. 静的解析を実行します

    • コマンド例

  6. ホストのGradleプロジェクト直下のreportsディレクトリからJtestレポートファイルを確認します

Antプロジェクトの静的解析

  1. ホストの任意のディレクトリにAntプロジェクトを配置します

    • この例ではAntプロジェクトはホストの現在の作業ディレクトリ($PWD)にあります。

  2. Antプロジェクト直下に設定ファイルを配置します

  3. 添付のDockerfileを編集してDockerイメージにAntのビルド環境をインストールします

    • Dockerfile編集例

  4. 編集したDockerfileでDockerイメージをビルドします

    • コマンド例

  5. 静的解析を実行します

    • コマンド例

  6. ホストのAntプロジェクト直下のreportsディレクトリからJtestレポートファイルを確認します