インストール編...第1 章 インストール NCS / ΗΕΛΙΟΣ Version 4.0 3 1.2 HASPドライバのインストール HASPドライバのインストール方法を説明します。
FUJITSU Software PGRelief4 2.2.2 Jenkins プラグインのインストール...
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 出力ファイル