Groovy-Eclipse plugin のコンパイラバージョンを変更する
色々あって、使い慣れた Eclipse 3.7 が起動しなくなったので Eclipse 4.2 に乗り換えてみました。
今となっては、Groovy が使えないとなんともならないので、Eclipse マーケットプレースから Groovy-Eclipse plugin をインストールしました。
最新の Groovy-Eclipse plugin は Groovy 2.0 に対応
折しも6月末に Groovy 2.0 がリリースされていて興味はあったが、無意識にインストールしてみたら使えるようになってました。
不幸中の幸いというか、喜び勇んでたら…
Spock はまだ Groovy 2.0 には対応していないワナ
次のようなコンパイルエラーが発生してた…
Groovy:Unexpected problem with AST transform: The Spock compiler plugin cannot execute because Spock 0.6.0-groovy-1.8 is not compatible with Groovy 2.0.0. For more information, see http://versioninfo.spockframework.org
Groovy のコンパイラが 2.0 だが、Spock の最新リリースバージョン 0.6 は Groovy 1.8 までしか対応していない。
というわけで、コンパイルできないとのこと。
※参考
スナップショットでは、Groovy 2.0 に対応した Spock 0.7 が公開されています。
(http://versioninfo.spockframework.org より)
Spock が使えないとテストが書けないので、ダウングレードする方法を探すことに。
GUI からバージョン指定を変更する
Eclipse のいつもの設定のところで、Groovy コンパイラのバージョンを指定できます。
「Switch to 1.8.6.xx ...」というボタンを押すと、再起動がかかって、バージョンが変更されます。
…はずですが、再起動してもバージョン変わらず。
ということで、トラブルシューティング開始。
ファイル編集でバージョン指定を変更する
さっきのボタンの下に「See here」とあるので、見てみる。
http://docs.codehaus.org/display/GROOVY/Compiler+Switching+within+Groovy-Eclipse
「Switching from outside of Eclipse」という節にあるとおりやってみる。
eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info ファイルの以下の場所を編集します。
[sourcecode language="css"]
org.codehaus.groovy,1.7.10.xx-20120630-2000-e42-RELEASE,plugins/org.codehaus.groovy_1.7.10.xx-20120630-2000-e42-RELEASE/,4,false
org.codehaus.groovy,1.8.6.xx-20120630-2000-e42-RELEASE,plugins/org.codehaus.groovy_1.8.6.xx-20120630-2000-e42-RELEASE/,4,false
org.codehaus.groovy,2.0.0.xx-20120630-2000-e42-RELEASE,plugins/org.codehaus.groovy_2.0.0.xx-20120630-2000-e42-RELEASE/,4,false
[/sourcecode]
ここには、有効となる Groovy のバージョンが列挙されている模様。
ということで、org.codehaus.groovy,2.0.0 … という行を1行分削除して、無効にします。
ここまでやって再起動すると、Groovy 2.0 がコンパイラバージョンから除外されて、Groovy 1.8 が繰り上がりでコンパイラバージョンになりました。
自動的に Spock 0.6 のコンパイルエラーも解消されました。
おまけ
ブログに書いてソリューションログを残してくために、編集した bundles.info ファイルを元に戻して、一度 Grooovy 2.0 が有効になるようにしました。
その後、「Switch to 1.8.6.xx …」ボタンを押したら見事に Groovy 1.8 をコンパイラとするように設定が変更できました。
…なんだったんだ!?