FUJITSU Software PGRelief4 2.2.2 Jenkins プラグインのインストール...

50
FUJITSU Software PGRelief CI ツール連携 Jenkins プラグイン使用説明書 PGR-0003-04Z0(00) 201910

Transcript of FUJITSU Software PGRelief4 2.2.2 Jenkins プラグインのインストール...

  • FUJITSU Software PGRelief

    CI ツール連携

    Jenkins プラグイン使用説明書

    PGR-0003-04Z0(00)

    2019年10月

  • i

    はじめに

    CI(Continuous Integration、継続的インテグレーション)ツール連携 Jenkinsプラグインは、

    PGRelief の実行結果を CIツール(Jenkins)で集約、表示するためのプラグインです。

    CI ツール連携 Jenkins プラグインでは、以下の機能を提供します。

    • PGReliefを Jenkinsのジョブから実行(※1)(※2)(※3) • PGRelief 実行結果を Jenkins 上に表示(※3)

    (※1) CI ツール連携 Jenkins プラグイン単体で PGReliefを実行することはできません。

    (※2) Jenkinsの 1 ジョブ実行につき、PGReliefの 1解析ライセンスを消費します。

    (※3) PGRelief C/C++ の IPA/SEC検査機能、MISRAオプション、CERT オプションは使用でき

    ません。

    本書では、CI ツール連携 Jenkinsプラグインの使用方法について説明しています。

    PGRelief が出力するプログラム欠陥に対する指摘メッセージについては「指摘詳細説明書」

    (PGRelief C/C++)または「規約詳細説明書」(PGRelief J)をご参照ください。

    PGRelief が出力するエラーメッセージやコマンドオプションについては、「コマンド解説書」

    をご参照ください。

  • ii

    [高度な安全性が要求される用途への使用について]

    本製品は、一般事務用、パーソナル用、家庭用、通常の産業用等の一般的用途を想定して設

    計・製造されているものであり、原子力施設における核反応制御、航空機自動飛行制御、航空交

    通管制、大量輸送システムにおける運行制御、生命維持のための医療用機器、兵器システムにお

    けるミサイル発射制御等、極めて高度な安全性が要求され、仮に当該安全性が確保されない場合、

    直接生命・身体に対する重大な危険性を伴う用途(以下「ハイセイフティ用途」という)に使用

    されるよう設計・製造されたものではございません。お客様は、当該ハイセイフティ用途に要す

    る安全性を確保する措置を施すことなく、本製品を使用しないでください。ハイセイフティ用途

    に使用される場合は、弊社の担当営業までご相談ください。

    Microsoft、Windows、Windows Serverは、米国Microsoft Corporationの米国およびそ

    の他の国における登録商標です。

    MISRAとそのロゴはMISRAコンソーシアムを代表してMIRA Ltd.の登録商標です。

    CERTは、米国Carnegie Mellon Universityの登録商標です。

    その他本文で使用する製品名、サービス名は一般に各開発メーカーの商標です。

    本資料には、「外国為替及び外国貿易管理法」に基づく特定技術が含まれています。従っ

    て本資料またはその一部を輸出する場合には、同法に基づく許可が必要とされます。

    株式会社富士通ソフトウェアテクノロジーズ

    お願い

    ・ 本書の全体または一部を、無断で転載または複写することを禁じます。

    ・ 本書の内容は予告なく変更されることがあります。

    All rights reserved, Copyright(C) 2016-2019 FUJITSU SOFTWARE TECHNOLOGIES LIMITED.

  • iii

    目次

    1. 動作環境 ................................................................ 1 1.1 動作 OS ................................................................ 1 1.2 JDK / JRE ............................................................. 1 1.3 CIツール .............................................................. 1 1.4 PGRelief .............................................................. 2

    2. 準備 .................................................................... 3 2.1 PGReliefのインストール .................................................. 3 2.2 CIツール連携 Jenkinsプラグインのインストール ............................. 3 2.2.1 CIツール連携 Jenkinsプラグインの構成 ................................ 3 2.2.2 Jenkinsプラグインのインストール ...................................... 4 2.2.3 Mavenプラグインのインストール ........................................ 8

    2.3 環境設定 ............................................................. 12 2.3.1 Jenkins システム設定 ............................................... 12

    3. 実行・確認 .............................................................. 16 3.1 PGRelief Jを使用する場合 .............................................. 16 3.1.1 ビルドの設定 ...................................................... 16 3.1.2 Jenkins ジョブの設定 ............................................... 19 3.1.3 ビルドの実行 ...................................................... 25 3.1.4 ビルド結果の確認 .................................................. 26

    3.2 PGRelief C/C++を使用する場合 .......................................... 29 3.2.1 ビルドの設定 ...................................................... 29 3.2.2 Jenkins ジョブの設定 ............................................... 32 3.2.3 ビルドの実行 ...................................................... 38 3.2.4 ビルド結果の確認 .................................................. 39

    4. エラーメッセージ .......................................................... 42 5. 付録 ................................................................... 44

    5.1 PGRelief J Mavenプラグインリファレンス ................................... 44 5.1.1 設定可能なプロパティ ............................................... 44 5.1.2 出力ファイル ....................................................... 45

    5.2 PGRelief C/C++ Mavenプラグインリファレンス ............................... 46 5.2.1 設定可能なプロパティ ............................................... 46 5.2.2 出力ファイル ....................................................... 46

  • 1

    1. 動作環境

    1.1 動作 OS

    以下の OSで動作します。

    • Microsoft(R) Windows Server(R) 2008 R2 operating system • Microsoft(R) Windows Server(R) 2012 operating system • Microsoft(R) Windows Server(R) 2012 R2 operating system • Microsoft(R) Windows Server(R) 2016 operating system • Microsoft(R) Windows(R) 7 Home Premium • Microsoft(R) Windows(R) 7 Professional • Microsoft(R) Windows(R) 7 Enterprise • Microsoft(R) Windows(R) 7 Ultimate • Microsoft(R) Windows(R) 8.1 • Microsoft(R) Windows(R) 8.1 Pro • Microsoft(R) Windows(R) 8.1 Enterprise • Microsoft(R) Windows(R) 10 Home • Microsoft(R) Windows(R) 10 Pro • Microsoft(R) Windows(R) 10 Enterprise • Red Hat Enterprise Linux 5 • Red Hat Enterprise Linux 6 • Red Hat Enterprise Linux 7

    1.2 JDK / JRE

    以下の JDK / JREで動作します。

    • JDK / JRE 7 • JDK / JRE 8

    1.3 CI ツール

    以下の CIツールで動作します。

    • Jenkins(1.625.1、1.625.2、1.625.3、1.642.1、1.642.2、1.642.3、1.642.4)

    なお、CI ツール連携 Jenkins プラグインの利用にあたり、下記 Jenkins プラグインが予め

    Jenkinsにインストールされている必要があります。

    • Static Code Analysis Plug-ins (バージョン 1.75) https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plug-ins

    また、Jenkins で Maven プロジェクトを使用する場合は、下記ツールが予めシステムにイン

    ストールされている必要があります。

    • Apache Maven(3.0.5~3.3.9)

    https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plug-ins

  • 2

    1.4 PGRelief

    以下の PGReliefに対応します。

    • PGRelief J 2016 フローティングライセンス • PGRelief C/C++ 2016 フローティングライセンス • PGRelief C/C++ 2016 広域探索オプション(広域探索を実施する場合に必要) • PGRelief J 2017 フローティングライセンス • PGRelief C/C++ 2017 フローティングライセンス • PGRelief C/C++ 2017 広域探索オプション(広域探索を実施する場合に必要) • PGRelief J 2018 フローティングライセンス • PGRelief C/C++ 2018 フローティングライセンス • PGRelief C/C++ 2018 広域探索オプション(広域探索を実施する場合に必要) • PGRelief J 2019 フローティングライセンス • PGRelief C/C++ 2019 フローティングライセンス • PGRelief C/C++ 2019 広域探索オプション(広域探索を実施する場合に必要)

  • 3

    2. 準備

    2.1 PGRelief のインストール

    インストールガイドに従って、PGReliefをインストールします。

    ※ PGRelief Jには、動作環境として JDKが必要です。あらかじめ環境を準備してください。

    また、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。

    2.2 CI ツール連携 Jenkins プラグインのインストール

    2.2.1 CI ツール連携 Jenkins プラグインの構成

    CI ツール連携 Jenkins プラグインは、下記ダウンロードサイトの『CI ツール連携 Jenkins

    プラグイン』からダウンロードし、インストールしてください。

    PGRelief C/C++: https://www.fujitsu.com/jp/group/fst/products/pgr/download/

    PGRelief J : https://www.fujitsu.com/jp/group/fst/products/pgr-java/download/

    ダウンロードした自己解凍形式のファイル『pgrelief-jenkins-plugin.exe』を任意の場所

    にコピーして実行すると、『pgrelief-jenkins-plugin』フォルダが作成されます。

    『pgrelief-jenkins-plugin』フォルダの内容は以下のとおりです。

    フォルダ名 説明

    PGRelief_JenkinsPlugin PGReliefの Jenkinsプラグインの格納フォルダ

    PGRelief_MavenPlugin PGReliefの Mavenプラグインの格納フォルダ

    『PGRelief_JenkinsPlugin』フォルダの内容は以下のとおりです。

    ファイル名 説明

    pgreliefj.hpi PGRelief Jの Jenkins プラグイン

    pgreliefc.hpi PGRelief C/C++の Jenkinsプラグイン

    『PGRelief_MavenPlugin』フォルダの内容は以下のとおりです。

    ファイル名 説明

    pgreliefj-maven-plugin-1.0.jar PGRelief Jの Mavenプラグイン

    pgreliefc-maven-plugin-1.0.jar PGRelief C/C++の Mavenプラグイン

  • 4

    2.2.2 Jenkins プラグインのインストール

    以下の手順は、Jenkinsプラグイン『Static Code Analysis Plug-ins』のインストールが

    完了していることを前提に説明しています。

    また、Jenkins 1.642.4を使用した場合の手順であり、他の Jenkins バージョンでは、操作

    手順が異なる場合があります。

    ① Jenkinsのダッシュボードを開きます。

    ② 左ペインの「Jenkinsの管理」をクリックします。

  • 5

    ③ 「プラグインの管理」をクリックします。

    ④ 「高度な設定」タブをクリックします。

  • 6

    ⑤ 「プラグインのアップロード」の「参照」ボタンをクリックします。

    ⑥ 『PGRelief_JenkinsPlugin』フォルダに格納されているファイルを選択し、「開く」ボ

    タンをクリックします。

  • 7

    ⑦ 「アップロード」をクリックします。

  • 8

    2.2.3 Maven プラグインのインストール

    Maven を利用して PGReliefを実行する場合のみ、インストールします。

    以下の手順は、Mavenのインストール、設定が完了していることを前提に説明しています。

    PGRelief J Mavenプラグイン

    ① コマンドラインで、『PGRelief_MavenPlugin』フォルダに移動します。

    ② mvnコマンドを実行し、Maven プラグインをインストールします。

    【Mavenローカルリポジトリにインストールする場合】

    mvnコマンドには、以下の引数を指定します。

    引数 説明

    install:install-file ローカルリポジトリにプラグインをインスト

    ールするためのゴール指定

    -Dfile=pgreliefj-maven-plugin-

    1.0.jar PGRelief J Mavenプラグインのファイル名

    -DgroupId=com.fujitsu.jp.fst.p

    grelief.maven

    PGRelief J Mavenプラグインのルートパッケー

    ジ名

    -DartifactId=pgreliefj-maven-p

    lugin PGRelief J Mavenプラグイン名

    -Dversion=1.0 PGRelief J Mavenプラグインのバージョン

    -Dpackaging=jar PGRelief J Mavenプラグインの形式

    -DgeneratePom=true ローカルリポジトリにインストールするプラ

    グインの POM生成

    例:PGRelief J Maven プラグイン(バージョン 1.0)を Maven ローカル

    リポジトリにインストールするコマンド

    mvn install:install-file

    -Dfile=pgreliefj-maven-plugin-1.0.jar

    -DgroupId=com.fujitsu.jp.fst.pgrelief.maven

    -DartifactId=pgreliefj-maven-plugin

    -Dversion=1.0

    -Dpackaging=jar

    -DgeneratePom=true

  • 9

    【Mavenリモートリポジトリにインストールする場合】

    mvnコマンドには、以下の引数を指定します。

    引数 説明

    deploy:deploy-file リモートリポジトリにプラグインをインスト

    ールするためのゴール指定

    -Durl=「リポジトリ URL」 プラグインをインストールするリモートリポ

    ジトリの URL

    -DrepositoryId=「リポジトリ ID」 プラグインをインストールするリモートリポ

    ジトリの ID

    -Dfile=pgreliefj-maven-plugin-

    1.0.jar PGRelief J Mavenプラグインのファイル名

    -DgroupId=com.fujitsu.jp.fst.p

    grelief.maven

    PGRelief J Mavenプラグインのルートパッケー

    ジ名

    -DartifactId=pgreliefj-maven-p

    lugin PGRelief J Mavenプラグイン名

    -Dversion=1.0 PGRelief J Mavenプラグインのバージョン

    -Dpackaging=jar PGRelief J Mavenプラグインの形式

    -DgeneratePom=true ローカルリポジトリにインストールするプラ

    グインの POM生成

    例:PGRelief J Maven プラグイン(バージョン 1.0)を Maven リモート

    リポジトリにインストールするコマンド

    mvn deploy:deploy-file

    -Durl=http://xx.xxx.xxx.xxx/repository

    -DrepositoryId=my-repository

    -Dfile=pgreliefj-maven-plugin-1.0.jar

    -DgroupId=com.fujitsu.jp.fst.pgrelief.maven

    -DartifactId=pgreliefj-maven-plugin

    -Dversion=1.0

    -Dpackaging=jar

    -DgeneratePom=true

  • 10

    PGRelief C/C++ Maven プラグイン

    ① コマンドラインで、『PGRelief_MavenPlugin』フォルダに移動します。

    ② mvnコマンドを実行し、Maven プラグインをインストールします。

    【Mavenローカルリポジトリにインストールする場合】

    mvnコマンドには、以下の引数を指定します。

    引数 説明

    install:install-file ローカルリポジトリにプラグインをインスト

    ールするためのゴール指定

    -Dfile=pgreliefc-maven-plugin-

    1.0.jar PGRelief C/C++ Maven プラグインのファイル名

    -DgroupId=com.fujitsu.jp.fst.p

    grelief.maven

    PGRelief C/C++ Maven プラグインのルートパッ

    ケージ名

    -DartifactId=pgreliefc-maven-p

    lugin PGRelief C/C++ Maven プラグイン名

    -Dversion=1.0 PGRelief C/C++ Maven プラグインのバージョン

    -Dpackaging=jar PGRelief C/C++ Maven プラグインの形式

    -DgeneratePom=true ローカルリポジトリにインストールするプラ

    グインの POM生成

    例:PGRelief C/C++ Mavenプラグイン(バージョン 1.0)を Mavenローカル

    リポジトリにインストールするコマンド

    mvn install:install-file

    -Dfile=pgreliefc-maven-plugin-1.0.jar

    -DgroupId=com.fujitsu.jp.fst.pgrelief.maven

    -DartifactId=pgreliefc-maven-plugin

    -Dversion=1.0

    -Dpackaging=jar

    -DgeneratePom=true

  • 11

    【Mavenリモートリポジトリにインストールする場合】

    mvnコマンドには、以下の引数を指定します。

    引数 説明

    deploy:deploy-file リモートリポジトリにプラグインをインスト

    ールするためのゴール指定

    -Durl=「リポジトリ URL」 プラグインをインストールするリモートリポ

    ジトリの URL

    -DrepositoryId=「リポジトリ ID」 プラグインをインストールするリモートリポ

    ジトリの ID

    -Dfile=pgreliefc-maven-plugin-

    1.0.jar PGRelief C/C++ Maven プラグインのファイル名

    -DgroupId=com.fujitsu.jp.fst.p

    grelief.maven

    PGRelief C/C++ Maven プラグインのルートパッ

    ケージ名

    -DartifactId=pgreliefc-maven-p

    lugin PGRelief C/C++ Maven プラグイン名

    -Dversion=1.0 PGRelief C/C++ Maven プラグインのバージョン

    -Dpackaging=jar PGRelief C/C++ Maven プラグインの形式

    -DgeneratePom=true ローカルリポジトリにインストールするプラ

    グインの POM生成

    例:PGRelief C/C++ Mavenプラグイン(バージョン 1.0)を Mavenリモート

    リポジトリにインストールするコマンド

    mvn deploy:deploy-file

    -Durl=http://xx.xxx.xxx.xxx/repository

    -DrepositoryId=my-repository

    -Dfile=pgreliefc-maven-plugin-1.0.jar

    -DgroupId=com.fujitsu.jp.fst.pgrelief.maven

    -DartifactId=pgreliefc-maven-plugin

    -Dversion=1.0

    -Dpackaging=jar

    -DgeneratePom=true

  • 12

    2.3 環境設定

    Jenkinsが PGRelief を実行、および結果表示するために必要な設定について説明します。

    2.3.1 Jenkins システム設定

    PGReliefのライセンス管理サーバの情報、および PGReliefの実行に必要な情報を Jenkinsに

    設定します。

    ① ダッシュボードの左ペインの「Jenkins の管理」をクリックします。

    ② 「システムの設定」をクリックします。

  • 13

    ③ グローバル プロパティの「環境変数」をチェックします。

    ④ 「キーと値のリスト」の「追加」ボタンをクリックします。

  • 14

    ⑤ 「キー」と「値」を設定します。

    PGRelief ライセンスサーバ設定 キー FST_LICENSE_FILE

    値 port@host

    PGRelief 起動時のライセンスサーバ認証の設定です。値には以下の情報を指定します。

    ・port : ポート番号

    PGRelief のライセンスサーバシステムが使用するポートを指定します。

    PGRelief ライセンスサーバのインストール時にポート番号を明示的に指定しなかっ

    た場合は、ポート番号は省略可能です。

    ライセンスサーバインストール時のポート番号の指定方法については、ライセンス

    サーバ管理者に問い合わせてください。

    ・host : ライセンス管理サーバの IP アドレス または ホスト名

    ポート番号を省略する場合も、必ず 「@」 を先頭につけてください。

    ※ キーが未設定の場合、動作環境によっては Jenkins から PGRelief を実行できない

    可能性があります。

    PGRelief ライセンス認証ポップアップ非表示設定 キー FLEXLM_BATCH

    値 1

    PGRelief 起動時のライセンス認証ポップアップを非表示にする設定です。

    ※ キーが未設定の場合、ライセンス認証ポップアップが表示され、Jenkins のジョブ

    実行が進行しなくなる可能性があります。

  • 15

    PGRelief 各種パス設定 【PGRelief Jを使用する場合】

    キー PGRJ_HOME

    値 PGRelief インストールディレクトリ\PGReliefJava

    【PGRelief C/C++を使用する場合】

    キー EPOMDIR

    値 Windowsの場合:

    PGReliefインストールディレクトリ\PGRelief\Analyze\EPOM

    Linux の場合:

    PGRelief インストールディレクトリ/FFSTpgr/FFSTpgr/Analyze/EPOM

    キー PATH (Linux のみ)

    値 PGRelief インストールディレクトリ/FFSTpgr/FFSTpgr/Analyze/EPOM

    キー LD_LIBRARY_PATH (Linuxのみ)

    値 PGRelief インストールディレクトリ/FFSTpgr/FFSTpgr/Analyze/EPOM/lib

    ※ キーが未設定の場合、動作環境によっては Jenkins から PGRelief を実行できない

    可能性があります。

  • 16

    3. 実行・確認

    3.1 PGRelief J を使用する場合

    3.1.1 ビルドの設定

    ビルド環境に合わせて、Ant、Maven、Windows バッチコマンドのいずれかに、

    PGRelief Jの実行に必要な設定を記述します。以下は、設定例です。

    Antの場合 ビルドファイル(build.xml)に、PGRelief Jの設定を記述します。

    PGRelief Jが提供する、pgrjava コマンドを指定します。

    pgrjavaコマンドのオプションは、arg タグの value属性に指定します。

    pgrjavaコマンド形式は、PGRelief Jの「コマンド解説書」を参照してください。

  • 17

    Maven の場合 POMファイル(pom.xml)に、PGRelief Jの設定を記述します。

    詳細は「5.1.1設定可能なプロパティ」を参照してください。

    C:/Program Files/PGRelief/PGReliefJava

    com.fujitsu.jp.fst.pgrelief.maven

    pgreliefj-maven-plugin

    1.0

    verify

    pgreliefj

  • 18

    Windowsバッチコマンドの場合 Windowsバッチファイルに、PGRelief Jの設定を記述します。

    PGRelief Jが提供する、pgrjava コマンドを指定します。

    pgrjavaコマンド形式は、PGRelief Jの「コマンド解説書」を参照してください。

    "C:\Program Files\PGRelief\PGReliefJava\pgrjava.bat"

    "C:\Jenkins\workspace\Project1\src" "C:\Jenkins\workspace\Project1\bin"

    "C:\Jenkins\workspace\Project1\report\pgreliefj_message.csv"

  • 19

    3.1.2 Jenkins ジョブの設定

    フリースタイル・プロジェクトのビルドジョブを使用する場合

    ① 「ビルド」の「ビルド手順の追加」をクリックします。

    ② 追加するビルド手順をクリックします。

    ※ 「3.1.1 ビルドの設定」 で設定したものを指定します。

    ※ PGRelief J は、「シェルの実行」には対応していません。

  • 20

    1. 「Ant の呼び出し」を選択した場合 「Ant の呼び出し」の「ターゲット」を指定します。

    ※ 「ターゲット」には、「3.1.1 ビルドの設定」のビルドファイル(build.xml)に設定

    したターゲットを指定します。

    2. 「Mavenの呼び出し」を選択した場合 「Mavenの呼び出し」の「ゴール」を指定します。

    ※ 「ゴール」には、「3.1.1 ビルドの設定」の POMファイル(pom.xml)に設定したフェ

    ーズ、または PGRelief Maven プラグインが提供するゴール(pgreliefj)を指定します。

  • 21

    3. 「Windowsバッチコマンドの実行」を選択した場合 「Windowsバッチコマンドの実行」の「コマンド」を指定します。

    ※ 「コマンド」には、call コマンドに続いて、「3.1.1 ビルドの設定」で作成した

    Windowsバッチファイルを指定します。

  • 22

    ③ 「ビルド後の処理」の「ビルド後の処理の追加」をクリックします。

    ④ 「PGRelief J警告の集計」をクリックします。

  • 23

    ⑤ 「集計するファイル」を指定します。

    「集計するファイル」に、PGRelief Jの解析結果ファイルを指定します。

  • 24

    Mavenプロジェクトのビルドジョブを使用する場合

    ① 「ビルド」の「ゴールとオプション」にゴールを指定します。

    ※ 「ゴール」には、「3.1.1 ビルドの設定」の POM ファイル(pom.xml)に設定したフェーズ、

    または PGRelief Mavenプラグインが提供するゴール(pgreliefj)を指定します。

    ② 「ビルド設定」の「PRelief J警告の集計」にチェックを入れます。

  • 25

    3.1.3 ビルドの実行

    Jenkinsのビルドジョブを実行します。

    Jenkinsのダッシュボードを開き、以下のいずれかの操作を行います。

    ビルド実行アイコンをクリックします。

    対象のジョブをクリックし、ペインに表示される「ビルド実行」をクリックします。

  • 26

    3.1.4 ビルド結果の確認

    ビルド結果は、Jenkinsのダッシュボードに表示されます。

    「すべて」ビューから対象のジョブをクリックし、ビルドが成功していることと PGRelief の

    解析結果が出力されていることを確認します。

    ① Jenkinsのダッシュボードを開きます。

    ② 「すべて」ビューから対象のジョブをクリックします。

  • 27

    ③ 左ペイン「ビルド履歴」から、最新のビルドをクリックします。

    ④ Jenkins のダッシュボード上にエラーメッセージが出力されていないことを確認します。

  • 28

    ⑤ 左ペインの「PGRelief J警告」をクリックします。

    ⑥ PGRelief の解析結果が表示されていることを確認します。

  • 29

    3.2 PGRelief C/C++を使用する場合

    3.2.1 ビルドの設定

    ビルド環境に合わせて、Ant、Maven、Windows バッチコマンド、シェルのいずれかに、

    PGRelief C/C++の実行に必要な設定を記述します。以下は、設定例です。

    Antの場合 ビルドファイル(build.xml)に、PGRelief C/C++の設定を記述します。

    PGRelief C/C++が提供する、pgr5コマンドを指定します。

    pgr5コマンドのオプションは、argタグの value属性に指定します。--qm オプションは

    必須です。

    pgr5コマンド形式は、PGRelief C/C++の「コマンド解説書」を参照してください。

  • 30

    Maven の場合 POMファイル(pom.xml)に、PGRelief C/C++の設定を記述します。

    詳細は「5.2.1 設定可能なプロパティ」を参照してください。

    C:/Program Files/PGRelief/PGRelief/Analyze/EPOM

    C:/work/sample

    com.fujitsu.jp.fst.pgrelief.maven

    pgreliefc-maven-plugin

    1.0

    verify

    pgreliefc

  • 31

    Windowsバッチコマンドの場合 Windowsバッチファイルに、PGRelief C/C++の設定を記述します。

    PGRelief C/C++が提供する、pgr5 コマンドを指定します。--qm オプションは必須です。

    pgr5コマンド形式は、PGRelief C/C++の「コマンド解説書」を参照してください。

    シェルの場合 シェルスクリプトに、PGRelief C/C++の設定を記述します。

    PGRelief C/C++が提供する、pgr5 コマンドを指定します。--qm オプションは必須です。

    pgr5コマンド形式は、PGRelief C/C++の「コマンド解説書」を参照してください。

    "C:\Program Files\PGRelief\PGRelief\Analyze\EPOM\pgr5.exe"

    --qm

    "C:\Jenkins\Workspace\Project1\src\sample1.c" >

    "C:\Jenkins\Workspace\Project1\report\pgreliefc_message.csv"

    "/opt/FFSTpgr/FFSTpgr/Analyze/EPOM/pgr5"

    --qm

    "/home/Jenkins/Workspace/Project1/src/sample1.c" >

    "/home/Jenkins/Workspace/Project1/report/pgreliefc_message.csv"

  • 32

    3.2.2 Jenkins ジョブの設定

    フリースタイル・プロジェクトのビルドジョブを使用する場合

    ① 「ビルド」の「ビルド手順の追加」をクリックします。

    ② 追加するビルド手順をクリックします。

    ※ 「3.2.1 ビルドの設定」 で設定したものを指定します。

  • 33

    1. 「Ant の呼び出し」を選択した場合 「Ant の呼び出し」の「ターゲット」を指定します。

    ※ 「ターゲット」には、「3.2.1 ビルドの設定」のビルドファイル(build.xml)に設定

    したターゲットを指定します。

    2. 「Mavenの呼び出し」を選択した場合 「Mavenの呼び出し」の「ゴール」を指定します。

    ※ 「ゴール」には、「3.2.1 ビルドの設定」の POMファイル(pom.xml)に設定したフェ

    ーズ、または PGRelief Maven プラグインが提供するゴール(pgreliefc)を指定します。

  • 34

    3. 「Windowsバッチコマンドの実行」を選択した場合 「Windowsバッチコマンドの実行」の「コマンド」を指定します。

    ※ 「コマンド」には、callコマンドに続いて、「3.2.1 ビルドの設定」で作成した Windows

    バッチファイルを指定します。

    4. 「シェルの実行」を選択した場合 「シェルの実行」の「コマンド」を指定します。

    ※ 「シェルスクリプト」には、sh コマンドに続いて、「3.2.1 ビルドの設定」で作成

    したシェルスクリプトを指定します。

  • 35

    ③ 「ビルド後の処理」の「ビルド後の処理の追加」をクリックします。

    ④ 「PGRelief C/C++警告の集計」をクリックします。

  • 36

    ⑤ 「集計するファイル」を指定します。

    「集計するファイル」に、PGRelief C/C++の解析結果ファイルを指定します。

  • 37

    Mavenプロジェクトのビルドジョブを使用する場合

    ① 「ビルド」の「ゴールとオプション」にゴールを指定します。

    ※ 「ゴール」には、「3.2.1 ビルドの設定」の POM ファイル(pom.xml)に設定したフェーズ、

    または PGRelief Mavenプラグインが提供するゴール(pgreliefc)を指定します。

    ② 「ビルド設定」の「PGRelief C/C++警告の集計」にチェックを入れます。

  • 38

    3.2.3 ビルドの実行

    Jenkinsのビルドジョブを実行します。

    Jenkinsのダッシュボードを開き、以下のいずれかの操作を行います。

    ビルド実行アイコンをクリックします。

    対象のジョブをクリックし、ペインに表示される「ビルド実行」をクリックします。

  • 39

    3.2.4 ビルド結果の確認

    ビルド結果は、Jenkinsのダッシュボードに表示されます。

    「すべて」ビューから対象のジョブをクリックし、ビルドが成功していることと PGRelief の

    解析結果が出力されていることを確認します。

    ① Jenkinsのダッシュボードを開きます。

    ② 「すべて」ビューから対象のジョブをクリックします。

  • 40

    ③ 左ペイン「ビルド履歴」から、最新のビルドをクリックします。

    ④ Jenkins のダッシュボード上にエラーメッセージが出力されていないことを確認します。

  • 41

    ⑤ 左ペインの「PGRelief C/C++警告」をクリックします。

    ⑥ PGRelief の解析結果が表示されていることを確認します。

  • 42

    4. エラーメッセージ

    Jenkins プラグイン関連のエラーメッセージ

    エラーメッセージ書式

    [PGRELIEFJ] @1:

    com.fujitsu.jp.fst.pgreliefj.jenkins.parser.PGReliefResultFileFormatException: @2

    または

    [PGRELIEFC] @1:

    com.fujitsu.jp.fst.pgreliefc.jenkins.parser.PGReliefResultFileFormatException: @2

    書式説明

    @1 Jenkinsが出力するメッセージが表示されます。

    @2 エラーメッセージが表示されます。詳細は以下のメッセージ一覧を参照してくだ

    さい。

    メッセージ一覧

    メッセージ 説明 対処方法

    The Format of PGRelief

    Result File (CSV) is

    abnormal.

    集計対象の PGRelief実

    行結果ファイルの形式

    に問題があります。

    集計対象ファイルは、

    PGRelief 実行結果ファイル

    のみにしてください。

    Maven プラグイン関連のエラーメッセージ

    エラーメッセージ書式

    [@1] @2 @3:@4

    書式説明

    @1 エラーレベルが表示されます。詳細は以下のメッセージ一覧を参照してくださ

    い。

    @2 Maven が出力するエラーメッセージが表示されます。(表示が省略される場合も

    あります)

    @3 "PGRelief J Maven Plugin Error"または"PGRelief C Maven Plugin Error"のい

    ずれかが表示されます。

    @4 エラーメッセージが表示されます。詳細は以下のメッセージ一覧を参照してくだ

    さい。

    メッセージ一覧

    エ ラ ー

    レベル

    メッセージ 説明 対処方法

    ERROR Failed to execute

    PGRelief J.

    または

    Failed to execute

    PGRelief C/C++.

    PGRelief コマンドの実行

    においてエラーが発生し

    ました。

    PGRelief 出力ファイルの内

    容を確認してください。

    【PGRelief Jの場合】

    pgreliefj_message.csv

    または

    pgreliefj_result.txt

    【PGRelief C/C++の場合】

  • 43

    pgreliefc_message.csv

    または

    pgreliefc_result.txt

    PGRelief が出力するエラー

    メッセージは「コマンド解説

    書」を参照してください。

    ERROR Plugin execute

    error.

    PGReliefの Mavenプラグ

    インの実行に失敗しまし

    た。

    PGRelief 出力ファイルの内

    容を確認してください。

    【PGRelief Jの場合】

    pgreliefj_message.csv

    または

    pgreliefj_result.txt

    【PGRelief C/C++の場合】

    pgreliefc_message.csv

    または

    pgreliefc_result.txt

    ERROR Install directory

    setting error.

    PGRelief のインストール

    ディレクトリが設定され

    ていません。

    【PGRelief Jの場合】

    環境変数 PGRJ_HOMEを設

    定してください。

    【PGRelief C/C++の場合】

    環境変数 EPOMDIRを設定

    してください。

    ERROR Install directory @1

    is not exist.

    @1:ディレクトリ

    PGRelief のインストール

    ディレクトリの設定に問

    題があります。

    【PGRelief Jの場合】

    環境変数 PGRJ_HOMEを正

    しく設定してください。

    【PGRelief C/C++の場合】

    環境変数 EPOMDIRを正し

    く設定してください。

    ERROR Unsafe command line

    string.

    解析を実施するコマンド

    ライン文字列に以下の文

    字が含まれています。

    ;|&`()$*?{}[]!

    左記の文字はコマンドライ

    ン文字列には含まないよう

    にしてください。

    WARNING Skip non existing

    source Directory. @1

    No sources to

    analyze.

    @1:ディレクトリ

    解析対象のファイルが存

    在しません。

    マルチモジュール・プロ

    ジェクトなどで解析対象

    とするソースファイルが

    存在しないプロジェクト

    がある場合に、この警告

    メッセージが表示される

    場合があります。

    ソースディレクトリやソー

    スファイルの指定に誤りが

    無いか確認してください。

  • 44

    5. 付録

    5.1 PGRelief J Maven プラグインリファレンス

    PGRelief J Mavenプラグインは、PGRelief J(pgrjavaコマンド)を実行し、結果を出力します。

    基本情報

    groupId com.fujitsu.jp.fst.pgrelief.maven

    artifactId pgreliefj-maven-plugin

    バージョン 1.0

    フェーズ(デフォルト) verify

    提供するゴール pgreliefj

    5.1.1 設定可能なプロパティ

    POMファイル(pom.xml)には、configurationタグで、以下のプロパティを設定することができ

    ます。必要に応じて設定してください。

    ただし、省略値のあるプロパティは、特別な理由がない限り設定する必要はありません。

    名前 型 説明 省略値

    pgrCheckRu

    leDefiniti

    onFile

    ファイル 検査指摘定義ファイルをフルパ

    スで指定してください。

    (pgrjava コマンドの -r オプシ

    ョンに相当)

    環境変数 PGRJ_HOME で設定さ

    れるディレクトリ配下の検査

    規約定義ファイル(rule.pgrj)

    pgrSrcDire

    ctory

    ファイル ソースディレクトリ、チェック対

    象のソースファイルが格納され

    ているディレクトリをフルパス

    で指定してください。

    Maven プロジェクトのコンパイ

    ルソースディレクトリリスト

    の先頭ディレクトリ

    (デフォルトプロパティ:

    ${project.compileSourceRoot

    s})

    pgrClasses

    Directory

    ファイル クラスディレクトリ、チェック対

    象のクラスファイル(class ファ

    イル)が格納されているディレク

    トリをフルパスで指定してくだ

    さい。

    Maven プロジェクトの ターゲ

    ットディレクトリ配下の

    classes

    (デフォルトプロパティ:

    ${project.build.directory}/

    classes)

    pgrClassPa

    thListFile

    ファイル クラスパスリストファイル、クラ

    スパスリストを記述したファイ

    ルをフルパスで指定してくださ

    い。

    (pgrjava コマンドの -af オプシ

    ョンに相当)

    Maven プロジェクトのクラスパ

    スリスト

    pgrOutputD

    irectory

    ファイル PGRelief J 実行結果出力先ディ

    レクトリを指定してください。

    ※ 指定したディレクトリに

    "pgreliefj_message.csv"

    で結果を出力します。

    Maven プロジェクトのビルド先

    ディレクトリ

    (デフォルトプロパティ:

    ${project.build.directory})

  • 45

    pgrEncodin

    g

    文字列 チェック対象の Javaソースのコ

    ード系を指定してください。

    設定値は以下の何れかです。

    MS932 | EUC-JP | UTF-8

    (pgrjava コマンドの -e オプシ

    ョンに相当)

    Maven プロジェクトビルド対象

    のエンコーディング

    (デフォルトプロパティ:

    ${project.build.sourceEncod

    ing})

    ※ ただし、PGRelief J で識別

    できないコード指定となる場

    合があります。その際は、省略

    せずに、左記の何れかを指定し

    てください。

    pgrOptions リスト pgrjava コマンドのオプション

    を指定してください。

    指定なし。

    5.1.2 出力ファイル

    PGRelief の実行が終了すると、以下のファイルが出力されます。

    ファイル名 出力内容 出力先

    pgreliefj_message.csv PGRelief J 指摘メッセー

    POMファイル内の

    pgrOutputDirectory プロパティで指

    定したディレクトリ

    pgreliefj_result.txt pgrjavaコマンドの標準出

    POMファイル内の

    pgrOutputDirectory プロパティで指

    定したディレクトリ

  • 46

    5.2 PGRelief C/C++ Maven プラグインリファレンス

    PGRelief C/C++ Maven プラグインは、PGRelief C/C++(pgr5 コマンド)を実行し、結果を出力

    します。

    基本情報

    groupId com.fujitsu.jp.fst.pgrelief.maven

    artifactId pgreliefc-maven-plugin

    バージョン 1.0

    フェーズ(デフォルト) verify

    提供するゴール pgreliefc

    5.2.1 設定可能なプロパティ POMファイル(pom.xml)には、configuration タグで、以下のプロパティを設定することができ

    ます。必要に応じて設定してください。

    ただし、省略値のあるプロパティは、特別な理由がない限り設定する必要はありません。

    名前 型 説明 省略値

    pgrSrcDire

    ctory

    ファイル ソースディレクトリ、チェック対

    象のソースファイルが格納され

    ているディレクトリをフルパス

    で指定してください。

    Maven プロジェクトの src ディ

    レクトリ

    (デフォルトプロパティ:

    ${project.basedir}/src)

    pgrCpluspl

    usExt

    リスト C++ソースファイルの拡張子を指

    定してください。

    .cc および .cpp

    pgrOutputD

    irectory

    ファイル PGRelief C/C++ 実行結果出力先

    ディレクトリを指定してくださ

    い。

    ※ 指定したディレクトリに

    "pgreliefc_message.csv"

    で結果を出力します。

    Maven プロジェクトのビルド先

    ディレクトリ

    (デフォルトプロパティ:

    ${project.build.directory})

    pgrOptions リスト pgr5 コマンドのオプションを指

    定してください。

    指定なし

    5.2.2 出力ファイル

    PGRelief の実行が終了すると、以下のファイルが出力されます。

    ファイル名 出力内容 出力先

    pgreliefc_message.csv PGRelief C/C++ 指摘メッ

    セージ

    POMファイル内の

    pgrOutputDirectory プロパティで指

    定したディレクトリ

    pgreliefc_result.txt pgr5コマンドの標準出力 POMファイル内の

    pgrOutputDirectory プロパティで指

    定したディレクトリ

    表紙はじめに目次1. 動作環境1.1 動作OS1.2 JDK / JRE1.3 CIツール1.4 PGRelief

    2. 準備2.1 PGReliefのインストール2.2 CIツール連携Jenkinsプラグインのインストール2.2.1 CIツール連携Jenkinsプラグインの構成2.2.2 Jenkinsプラグインのインストール2.2.3 Mavenプラグインのインストール

    2.3 環境設定2.3.1 Jenkinsシステム設定

    3. 実行・確認3.1 PGRelief Jを使用する場合3.1.1 ビルドの設定3.1.2 Jenkinsジョブの設定3.1.3 ビルドの実行3.1.4 ビルド結果の確認

    3.2 PGRelief C/C++を使用する場合3.2.1 ビルドの設定3.2.2 Jenkinsジョブの設定3.2.3 ビルドの実行3.2.4 ビルド結果の確認

    4. エラーメッセージ5. 付録5.1 PGRelief J Mavenプラグインリファレンス5.1.1 設定可能なプロパティ5.1.2 出力ファイル

    5.2 PGRelief C/C++ Mavenプラグインリファレンス5.2.1 設定可能なプロパティ5.2.2 出力ファイル