倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

Groovy プロジェクトを Maven2 でコンパイルしてみたら・・・

なんか、やたらとコンパイルエラーがでますねぇ・・・(^ ^;) ほとんどライブラリのダウンロード(+ちょっとしたスクリプト)にしか使ってなかったので、問題ないかと思ってたけど、あまり気持ちのいいものじゃないですねぇ。

IntelliJ IDEA 上でコンパイル&実行する分には問題ないようですが、どうも Groovy コードからコンパイラによって生成した Java のスタブコードがもんだいなようですね。 GMaven が悪いのかな?

報告されたコンパイルエラーは大体次のようなもの:

  • java.io, java.util パッケージのクラスが解決できない
  • 独自アノテーションが解決できない
  • main() メソッドが認識できない
  • JUnit(3.x) の test メソッドが認識できない

とりあえずの解決策を:

java.io, java.util パッケージのクラスが解決できない
それらのパッケージの import 文を書く。 import java.io.* ワイルドカードは使っても大丈夫。 import 文の代わりに、完全修飾名を使ってもよい*1
独自アノテーションが解決できない
アノテーションクラスごとに import 文を書く。 ワイルドカードによる import はまずい模様。 アノテーションクラスだけを含むパッケージを作った方が良さそう。
main() メソッドが認識できない
返り値を void に設定する*2。 static void main(args){...}
JUnit(3.x) の test メソッドが認識できない
main() メソッドと同じように返り値を void に設定する。 void testXxxx(){...}

Groovyイン・アクション

Groovyイン・アクション


Griffon in Action

Griffon in Action

*1:import 文だと、「Optimize Imports (Ctrl + Alt + O)」で消えてしまう怖れが・・・

*2:普通なら「static main(args)」だけで main() メソッドと認識してくれます。