Gradle の Code Quality プラグインでエラーを無視する
id:kyon_mm さんの 『Gradleで簡単にFindBugsを使えるようにしてみた』 を見て、
まずは Code Quality プラグインを試してみました。
Code Quality プラグインを使えば、簡単に Checkstyle や CodeNarc でコーディング規約をチェックできて良いのですが、デフォルトでは 一つでもエラーがあると ビルドが失敗してしまいます。
特に Checkstyle でエラーがあった場合 CodeNarc も テストも実行されないので、エラーレポートだけ生成したい場合には都合が悪かったりします。
と言うことで...
Checkstyle や CodeNarc でエラーが発生した場合でも エラーを無視してビルドを続けるように設定してみました。
ちょっと調べた感じでは ユーザーガイド等にも記載されていないようだったので メモ...
設定方法は簡単です。次のように ignoreFailures = true を設定するだけです。
実際に実行すると
:compileJava :compileGroovy :processResources UP-TO-DATE :classes :jar :assemble :checkstyleMain [ant:checkstyle] gradle-code-quality-sample/src/main/java/org/gradle/sample/Person.java:0: Missing package-info.java file. [ant:checkstyle] gradle-code-quality-sample/src/main/java/org/gradle/sample/Person.java:3:1: java.lang パッケージからのインポートは冗長です - java.lang.String。 [ant:checkstyle] gradle-code-quality-sample/src/main/java/org/gradle/sample/Person.java:5: Javadoc コメントがありません。 [ant:checkstyle] gradle-code-quality-sample/src/main/java/org/gradle/sample/Person.java:6:5: Javadoc コメントがありません。 [ant:checkstyle] gradle-code-quality-sample/src/main/java/org/gradle/sample/Person.java:8:5: Javadoc コメントがありません。 [ant:checkstyle] gradle-code-quality-sample/src/main/java/org/gradle/sample/Person.java:12:5: Javadoc コメントがありません。 [ant:checkstyle] gradle-code-quality-sample/src/main/java/org/gradle/sample/Person.java:12:25: Parameter name should be final. [ant:checkstyle] gradle-code-quality-sample/src/main/java/org/gradle/sample/Person.java:12:32: 'name' がフィールドを隠しています。 :checkstyleTest UP-TO-DATE :codenarcMain org/gradle/sample/GroovyPerson.groovy:4 PropertyName: The property name _name does not match the pattern [a-z][a-zA-Z0-9]* :codenarcTest :compileTestJava UP-TO-DATE :compileTestGroovy :processTestResources UP-TO-DATE :testClasses :test :check :build BUILD SUCCESSFUL Total time: 18.973 secsのように checkstyleMain や codenarcMain でエラーがあっても ビルドはそのまま継続して 成功するようになりました。
ちなみに checkstyleMain は src/main/java の Checkstyle のチェックで、 codenarcMain は src/main/groovy の CodeNarc のチェックです。