はじめに

仕事で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