Eclipse (Pleiades) or Maven で Java 8 対応の CheckStyle を使う
Java 8 のシンタックス (ラムダとか!) を使ってるコードに CheckStyle したら、
Eclipse (Pleiades) でも Maven でもエラーになった。
どっちも CheckStyle 本体のバージョンが古いのが原因だった。
Java 8 対応のバージョンになるのも時間の問題だろうけど、
それぞれで使う CheckStyle をバージョンアップ出来たので、やり方をメモっとく。
環境
- Eclipse:
- Pleiades All in One 4.4.1.v20140926
- Eclipse 4.4.0 Luna ルナ SR1 for Windows ベース
- Checkstyle プラグイン 5.7
- Maven:
- Apache Maven 3.2.3
- Maven CheckStyle Plugin 2.13 (CheckStyle 5.7)
エラー内容
試しにこんなコード書いたら。
private void hoge() {
Runnable run = () -> System.out.println("");
}
怒られた…
(extension) TreeWalker: Got an exception - expecting EOF, found '}'
Eclipse (Pleiades) での対応方法
-
pleiades/eclipse/dropins/CheckStyle
をフォルダごと削除する。 - Eclipse を起動して、 [ヘルプ] → [Eclipse マーケットプレース] を開く。
- “checkstyle” で検索。
- “Checkstyle プラグイン 6.1.0” をインストール。続きはウィザードに従えばOK。
あとは使いたいプロジェクトのプロパティから [Checkstyle] を開いて、
[このプロジェクトで Checkstyle をアクティブにする] にチェック入れれば OK。
最初、 pleiades/eclipse/dropins/CheckStyle
を削除せずに
6.1.0 をインストールしてて、うまく動かなくて悩んでしまった。
古いバージョン (5.7.0) は手動削除しないと、自動で消えてくれないっぽい。
Maven CheckStyle Plugin での対応方法
pom.xml
に maven-checkstyle-plugin
を書くとき、
CheckStyle 本体の依存関係を新しいバージョンで書いたら通った。
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.13</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>6.1</version>
</dependency>
</dependencies>
</plugin>
と言っても Maven CheckStyle Plugin 側では
動作確認されてないバージョンだろうけど。
何か問題が出てきたらそのとき考えることにしよう。
Java 8 対応版、はよリリースされると嬉しいなー(・ε・`)