fujitsu software pgreliefまた、環境変数...

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

Upload: others

Post on 13-Jun-2020

180 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

FUJITSU Software

PGRelief

CI ツール連携

Jenkins プラグイン使用説明書

PGR-0003-05Z0(00)

2019年12月

Page 2: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

i

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

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

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

• PGReliefを Jenkinsのジョブから実行(※1)(※2)

• PGRelief 実行結果を Jenkins 上に表示(※2)

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

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

ません。

本書では、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 が出力するプログラム欠陥に対する指摘メッセージについては「指摘詳細説明書」

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

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

をご参照ください。

Page 3: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

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.

Page 4: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

iii

目次

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

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

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

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

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

4. エラーメッセージ .......................................................... 38 5. 付録 ................................................................... 40

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

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

Page 5: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

1

1. 動作環境

1.1 動作 OS

Windows、Red Hat Enterprise Linuxで動作します。

詳細は「はじめに」に記載のダウンロードサイトを参照してください。

1.2 JDK / JRE

詳細は「はじめに」に記載のダウンロードサイトを参照してください。

1.3 CI ツール

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

• Jenkins

Jenkins で PGRelief実行結果を表示する場合は、下記 Jenkinsプラグインをインストー

ルする必要があります。

• Warnings Next Generation

また、Jenkins で Maven プロジェクトを使用する場合は、下記ソフトウェアが予めシステム

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

• Apache Maven

詳細は「はじめに」に記載のダウンロードサイトを参照してください。

1.4 PGRelief

以下の PGReliefに対応します。

• PGRelief Jフローティングライセンス

• PGRelief C/C++ フローティングライセンス

• PGRelief C/C++ 広域探索オプション(広域探索を実施する場合に必要)

詳細は「はじめに」に記載のダウンロードサイトを参照してください。

Page 6: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

2

2. 準備

2.1 PGRelief のインストール

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

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

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

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

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

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

CI ツール連携 Jenkins プラグインは、「はじめに」に記載のダウンロードサイトの『CI ツー

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

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

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

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

フォルダ名 説明

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

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

ファイル名 説明

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

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

Page 7: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

3

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

以下の手順は、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

Page 8: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

4

【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

Page 9: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

5

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

Page 10: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

6

【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

Page 11: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

7

2.3 環境設定

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

2.3.1 Jenkins システム設定

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

Jenkinsに設定します。

PGRelief の結果表示を行う場合は、Warnings Next Generation があらかじめシステムにイン

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

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

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

Page 12: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

8

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

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

Page 13: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

9

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

PGRelief ライセンスサーバ設定

キー FST_LICENSE_FILE

値 port@host

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

・port : ポート番号

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

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

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

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

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

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

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

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

可能性があります。

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

キー FLEXLM_BATCH

値 1

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

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

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

Page 14: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

10

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 を実行できない

可能性があります。

⑥ (PGRelief の実行結果を Jenkins に表示させる場合) Groovy Based Warnings Parsers

の「Parsers」を設定します。

Page 15: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

11

PGRelief 実行結果表示設定

【PGRelief Jを使用する場合】

名前 PGRelief J

ID pgrelief_j

正規表現 (.*),(\d+),([^,]*),([^,]*),(.*)

マッピング

スクリプト

import edu.hm.hafner.analysis.Severity

builder.setFileName(matcher.group(1))

.setLineStart(Integer.parseInt(matcher.group(2)))

.setCategory(matcher.group(3))

.setType(matcher.group(4))

.setMessage(matcher.group(5))

if(matcher.group(3).startsWith("S") || matcher.group(3).startsWith

("!") ){

builder.setSeverity(Severity.WARNING_HIGH)

}else if(matcher.group(3).startsWith("W")){

builder.setSeverity(Severity.WARNING_NORMAL)

}else{

builder.setSeverity(Severity.WARNING_LOW)

}

return builder.buildOptional();

ログメッセ

ージ

SJIS

ソースファイル名,行番号,グループ,指摘 ID,メッセージ

C:\sampleDir\sample.java,1,W:信頼性,pgj00000, サンプルメッセージ

Page 16: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

12

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

名前 PGRelief C

ID pgrelief_c

正規表現 \"(.*)\",(\d+),\"(.)\",\"([^,]*)\",\"(.*)\"

マッピング

スクリプト

import edu.hm.hafner.analysis.Severity

builder.setFileName(matcher.group(1))

.setLineStart(Integer.parseInt(matcher.group(2)))

.setCategory(matcher.group(3))

.setType(matcher.group(4))

.setMessage(matcher.group(5))

if(matcher.group(3).equals("a") || matcher.group(3).equals("!") ){

builder.setSeverity(Severity.WARNING_HIGH)

}else if(matcher.group(3).equals("b") || matcher.group(3).equals("h

")){

builder.setSeverity(Severity.WARNING_NORMAL)

}else{

builder.setSeverity(Severity.WARNING_LOW)

}

return builder.buildOptional();

ログメッセ

ージ

SJIS

"ソースファイル名",行番号,"グループ","指摘 ID","メッセージ"

"C:\sampleDir\sample.c",1,"a","pgr0000","サンプルメッセージ"

Page 17: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

13

3. 実行・確認

3.1 PGRelief J を使用する場合

3.1.1 ビルドの設定

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

必要な設定を記述します。以下は、設定例です。

Maven の場合

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

以下は、Jenkins ジョブのワークスペースを「C:\Jenkins\Workspace」に設定した場合の

例です。

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

<build>

<plugins>

<!-- PGRelief J の Mavenプラグインの設定 -->

<plugin>

<groupId>com.fujitsu.jp.fst.pgrelief.maven</groupId>

<artifactId>pgreliefj-maven-plugin</artifactId>

<version>1.0</version>

<!-- 必要に応じてプロパティを追加 -->

<configuration>

<pgrCheckRuleDefinitionFile>C:/Program Files/PGRelief/PGReliefJava/rule.pg

rj</pgrCheckRuleDefinitionFile>

<pgrOutputDirectory>C:/Jenkins/Workspace/Report</pgrOutputDirectory>

</configuration>

<executions>

<execution>

<!-- PGRelief Jを実行するフェーズ -->

<phase>verify</phase>

<goals>

<!-- PGRelief Jの Mavenプラグインが提供するゴール (必須) -->

<goal>pgreliefj</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

Page 18: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

14

Windowsバッチコマンドの場合

Windowsバッチファイルに、PGRelief Jの設定を記述します。

以下は、Jenkins ジョブのワークスペースを「C:\Jenkins\Workspace」に設定した場合の

例です。

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

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

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

"C:\Jenkins\Workspace\ProjectJ\src" "C:\Jenkins\Workspace\ProjectJ\bin"

"C:\Jenkins\Workspace\Report\pgreliefj_message.csv"

Page 19: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

15

3.1.2 Jenkins ジョブの設定

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

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

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

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

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

Page 20: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

16

1. 「Mavenの呼び出し」を選択した場合

「Mavenの呼び出し」の「ゴール」を指定します。

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

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

2. 「Windowsバッチコマンドの実行」を選択した場合

「Windowsバッチコマンドの実行」の「コマンド」を指定します。

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

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

Page 21: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

17

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

④ 「Record compiler warning and static analysis result」をクリックします。

Page 22: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

18

⑤ 「Static Analysis Tools」を設定します。

名前 値 説明

Tool Groovy Parser 「 Record compiler warning and static

analysis result」機能で使用するツール

を指定します。(固定値)

Parser PGRelief J 「 Record compiler warning and static

analysis result」機能で使用するパーサ

ーを指定します。(固定値)

予め Jenkins にパーサー(Groovy Based

Warnings Parsers)を設定する必要があり

ます。詳細は「2.3.1 Jenkins システム設

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

Report File

Pattern

Report/pgreliefj_message.csv PGRelief J の実行結果ファイルを指定し

ます。

値はビルド設定によって異なります。

「3.1.1 ビルドの設定」に記載の例の場合、

「Report/pgreliefj_message.csv」を指

定します。

Report

Encoding

Shift_JIS PGRelief J の実行結果ファイルの文字コ

ードを指定します。(固定値)

Page 23: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

19

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

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

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

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

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

Page 24: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

20

③ 「Record compiler warning and static analysis result」をクリックします。

④ 「Static Analysis Tools」を設定します。

※ 設定内容は「フリースタイル・プロジェクトのビルドジョブを使用する場合」と同様で

す。

Page 25: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

21

3.1.3 ビルドの実行

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

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

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

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

Page 26: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

22

3.1.4 ビルド結果の確認

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

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

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

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

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

Page 27: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

23

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

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

す。

Page 28: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

24

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

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

Page 29: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

25

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

3.2.1 ビルドの設定

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

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

Maven の場合

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

以下は、Jenkins ジョブのワークスペースを「C:\Jenkins\Workspace」に設定した場合の

例です。

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

<build>

<plugins>

<!-- PGRelief C/C++ の Maven プラグインの設定 -->

<plugin>

<groupId>com.fujitsu.jp.fst.pgrelief.maven</groupId>

<artifactId>pgreliefc-maven-plugin</artifactId>

<version>1.0</version>

<!-- 必要に応じてプロパティを追加 -->

<configuration>

<pgrOutputDirectory>C:/Jenkins/Workspace/Report</pgrOutputDirectory>

<pgrOptions>

<pgrOption>-Z"C:/Program Files/PGRelief/PGRelief/Analyze/EPOM/MessageInfo/

default-pgr.rul"</pgrOption>

<!-- その他の追加例

<pgrOption>-KMS/VC2010</pgrOption>

<pgrOption>-Y"C:/Jenkins/Workspace/ProjectC/stdinc"</pgrOption>

<pgrOption>-I"C:/Jenkins/Workspace/ProjectC/priinc"</pgrOption>

<pgrOption>-D_DEBUG</pgrOption>

<pgrOption>-SSJIS</pgrOption>

-->

</pgrOptions>

</configuration>

<executions>

<execution>

<!-- PGRelief C/C++を実行するフェーズ -->

<phase>verify</phase>

<goals>

<!-- PGRelief C/C++の Maven プラグインが提供するゴール (必須) -->

<goal>pgreliefc</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

Page 30: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

26

Windowsバッチコマンドの場合

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

以下は、Jenkins ジョブのワークスペースを「C:\Jenkins\Workspace」に設定した場合の

例です。

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

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

シェルの場合

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

以下は、Jenkins ジョブのワークスペースを「/home/Jenkins/Workspace」に設定した場

合の例です。

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

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

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

--qm

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

"C:\Jenkins\Workspace\Report\pgreliefc_message.csv"

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

--qm

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

"/home/Jenkins/Workspace/Report/pgreliefc_message.csv"

Page 31: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

27

3.2.2 Jenkins ジョブの設定

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

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

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

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

Page 32: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

28

1. 「Mavenの呼び出し」を選択した場合

「Mavenの呼び出し」の「ゴール」を指定します。

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

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

2. 「Windowsバッチコマンドの実行」を選択した場合

「Windowsバッチコマンドの実行」の「コマンド」を指定します。

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

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

Page 33: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

29

3. 「シェルの実行」を選択した場合

「シェルの実行」の「コマンド」を指定します。

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

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

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

Page 34: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

30

④ 「Record compiler warning and static analysis result」をクリックします。

⑤ 「Static Analysis Tools」を設定します。

名前 値 説明

Tool Groovy Parser 「 Record compiler warning and static

analysis result」機能で使用するツール

を指定します。(固定値)

Parser PGRelief C 「 Record compiler warning and static

analysis result」機能で使用するパーサ

ーを指定します。(固定値)

予め Jenkins にパーサー(Groovy Based

Warnings Parsers)を設定する必要があり

ます。詳細は「2.3.1 Jenkins システム設

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

Page 35: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

31

Report File

Pattern

Report/pgreliefc_message.csv PGRelief C/C++の実行結果ファイルを指定

します。

値はビルド設定によって異なります。

「3.2.1 ビルドの設定」に記載の例の場合、

「Report/pgreliefc_message.csv」を指

定します。

Report

Encoding

(指定なし) PGRelief C/C++の実行結果ファイルの文字

コードを指定します。

値はビルド設定によって異なります。

「3.2.1 ビルドの設定」に記載の例の場合、

何も指定しません。

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

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

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

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

Page 36: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

32

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

③ 「Record compiler warning and static analysis result」をクリックします。

Page 37: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

33

④ 「Static Analysis Tools」を設定します。

※ 設定内容は「フリースタイル・プロジェクトのビルドジョブを使用する場合」と同様で

す。

Page 38: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

34

3.2.3 ビルドの実行

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

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

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

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

Page 39: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

35

3.2.4 ビルド結果の確認

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

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

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

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

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

Page 40: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

36

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

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

す。

Page 41: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

37

⑤ 左ペインの「PGRelief C Warnings」をクリックします。

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

Page 42: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

38

4. エラーメッセージ

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++の場合】

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

Page 43: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

39

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:ディレクトリ

解析対象のファイルが存

在しません。

マルチモジュール・プロ

ジェクトなどで解析対象

とするソースファイルが

存在しないプロジェクト

がある場合に、この警告

メッセージが表示される

場合があります。

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

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

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

Page 44: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

40

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})

Page 45: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

41

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 プロパティで指

定したディレクトリ

Page 46: FUJITSU Software PGReliefまた、環境変数 JAVA_HOMEに、JDKのインストールパスを設定してください。 2.2 CI ツール連携Jenkins プラグインのインストール

42

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 プロパティで指

定したディレクトリ