Java開発でJenkinsを個人運用するためのメモ

    はじめに {#-}

    仕事でJava開発をすることになったのだけれども、

    コードの品質をGUIで可視化すると便利だなと思って、

    Jenkinsをつかってみることにしました。

    あくまで可視化するためのグラフィカルな便利cronとしての役割のみ求めているので、複雑なことや難しいことはしません。

    やりたいこと {#-}

    • gradle 連携
    • FindBugsの指摘を可視化
    • CheckStyleの指摘を可視化
    • ステップ数を数える
    • TODO 管理
    • spock テスト実行

    version {#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のインストール {#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-}

    以下のプラグインを追加。

    • FindBugs Plug-in
    • 設定 -> ビルド後の処理 -> ビルド後の処理の追加を選択
    • Findbugs警告の集計を選択
    • build/reports/findbugs/main.xmlを入力。
    • build.gradleに以下を追加
    apply plugin: 'findbugs'
    
    findbugs {
        reportsDir = file("./build/reports/findbugs")
        ignoreFailures = true
    }
    

    CheckStyleの設定 {#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 を表示 {#todo-}

    • TaskScanner Plug-in
    • 設定 -> ビルド後の処理 -> ビルド後の処理の追加を選択
    • 未解決タスクの集計を選択
    • 集計対象に \/*.javaを入力

    spock テスト実行 {#spock-}

    • 設定 -> ビルド後の処理 -> ビルド後の処理の追加を選択

    • JUnitテスト結果の集計を選択

    • テスト結果xmlに \/*Spec.xmlを入力

    • 設定-> ビルド -> ビルド手順の追加 -> Invoke gradle script を選択

    • Use Gradle Wrapperを選択。Tasksのところに以下を入力。

      clean test

    ジョブの実行 {#-}

    エラーするので以下をプロジェクトルートで叩いた。

    sudo gradle wrap