はじめに
仕事でJava開発をすることになったのだけれども、
コードの品質をGUIで可視化すると便利だなと思って、
Jenkinsをつかってみることにしました。
あくまで可視化するためのグラフィカルな便利cronとしての役割のみ求めているので、複雑なことや難しいことはしません。
やりたいこと
- gradle 連携
- FindBugsの指摘を可視化
- CheckStyleの指摘を可視化
- ステップ数を数える
- TODO 管理
- spock テスト実行
version
- Jenkins 2.73.1
- StepCounter Plugin 2.0.0
- FindBugs Plugin 4.71
- CheckStyle Plug-in 3.49
- Task Scanner Plug-in 4.52
Jenkinsのインストール
お試しなので、自PCのUbuntu 16.04 LTSにインストールします。手順は以下。
仕事では、CentOS 7.4にインストールします。
ポート番号の変更をします。デフォルトでは8080です。
/etc/default/jenkinsを編集して、12345とか適当なものに変更します。
- HTTP_PORT=8080
+ HTTP_PORT=12345
Jenkinsを再起動。
$ sudo systemctl daemon-reload
$ sudo service jenkins restart
https://localhost:12345 にアクセスして、画面が表示されることを確認。
手順にしたがって、初期設定をする。オススメプラグインをインストールする。
リポジトリをチェックアウトしてビルドしてみる
とりあえず以下のgithub repoを利用します。ビルドツールはgradleです。
設定手順
- General -> プロジェクト名に “hello_jenkins"を入力
- ソースコード管理 -> git にチェックして、リポジトリURLに https://github.com/tsu-nera/java_spock_playground.git を入力
- ビルド -> ビルド手順の追加 -> Invoke gradle script を選択
手動でビルドを実行すると、githubからcloneして、gradleコマンドが叩かれる。
プラグインでやりたいことを実現
ステップ数を数える
以下のプラグインを追加。
- StepCounter Plugin
- 設定 -> ビルド後の処理 -> ビルド後の処理の追加を選択
- Step Counter を選択
- ファイルの種類: java,
- 解析するファイルパターン **/*.java を入力
FindBugsの設定
以下のプラグインを追加。
- FindBugs Plug-in
- 設定 -> ビルド後の処理 -> ビルド後の処理の追加を選択
- Findbugs警告の集計を選択
- build/reports/findbugs/main.xmlを入力。
- build.gradleに以下を追加
apply plugin: findbugs
findbugs {
reportsDir = file("./build/reports/findbugs")
ignoreFailures = true
}
CheckStyleの設定
- CheckStyle Plug-in
- 設定 -> ビルド後の処理 -> ビルド後の処理の追加を選択
- CheckStyle警告の集計を選択
- build/reports/checkstyle/main.xmlを入力。
- build.gradleに以下を追加
apply plugin: checkstyle
checkstyle {
reportsDir = file(./build/reports/checkstyle)
configFile = file(./sun_checks.xml)
ignoreFailures = true
}
-
ここから、checkstyleの設定ファイルを取得してプロジェクトルートに置く。 https://github.com/checkstyle/checkstyle/tree/master/src/main/resources
- google_checks.xml
- sun_checks.xml
-
設定-> ビルド -> ビルド手順の追加 -> Invoke gradle script を選択
-
Use Gradle Wrapperを選択。Tasksのところに以下を入力。
checkstyleMain findbugsMain
TODO を表示
- TaskScanner Plug-in
- 設定 -> ビルド後の処理 -> ビルド後の処理の追加を選択
- 未解決タスクの集計を選択
- 集計対象に **/*.javaを入力
spock テスト実行
-
設定 -> ビルド後の処理 -> ビルド後の処理の追加を選択
-
JUnitテスト結果の集計を選択
-
テスト結果xmlに **/*Spec.xmlを入力
-
設定-> ビルド -> ビルド手順の追加 -> Invoke gradle script を選択
-
Use Gradle Wrapperを選択。Tasksのところに以下を入力。
clean test
ジョブの実行
エラーするので以下をプロジェクトルートで叩いた。
sudo gradle wrap