ビルドツールではGradleを一押ししているのですが、
まだまだ開発中故に残念なところがあるので、
そのメモです。
Dependencyの指定にGStringが使えない
Gradleでdependencyの指定にGStringが指定できないのはちょっと不便…(´・ω・`)
— 冬眠中さん (@mike_neck) 2月 24, 2012
プロジェクトの依存ライブラリーを指定するときに、
同じGroupIdで同じバージョンを使うときに、
プロパティを設けておいて、
それを利用する方がのちのち便利です。
Groovyの場合、文字を展開するのに便利な
GString
クラスがあり、変数を置き換える際にそれを利用します。
というわけで、
dependency
の指定にはGString
を利用したいわけです。上記の
build.gradle
では、GAEのバージョンやSlim3のバージョンをプロパティに設定して利用しているわけですが、
こんな感じのエラーが発生します。
GString
がString
にキャストできないということらしいです。対策
仕方が無いので、カッコ悪いですが、
toString()
メソッドを利用します。これはソースを読んで、パッチでも送りましょうかね…
Windowsでの問題
Macなら多分問題はないと思いますが、
Windowsでやっていると、
文字コードの問題が出てきます。
これについては、@nobeansさんの『豆無日記』「Gradleで文字エンコーディングを指定する方法」に詳しく書かれています。
先ほどの
build.gradle
でWindowsでコンパイルする場合、こんなエラーが出ます(コードページは932、ソースはUTF-8)。@nobeansさんのページに書かれたとおりに修正するとこんな感じの
build.gradle
ファイルになります。これで、なんとかうまく走りました。
ココらへんは、今年中にmilestoneが30くらいまでになるというGradleですので、対策してくれるんじゃないかななどと勝手に期待してみたり…
追記:2012/02/25 8:45
@orange_cloverさんからアドバイスがあったページ
『設計と実装の狭間で。』の「[Gradle]Gradleで文字エンコーディングを指定する方法」に書いてあった方法でも
エンコーディングの指定が可能なようです。
ところが、ひとつだけ残念なところが…
IntelliJ IDEAの10.5だとエラーになってしまうんですよね…
もちろん実行できますが…
文字コードの指定は、こういうのもひねり出されてるようだ。
返信削除『Gradleで文字エンコーディングを指定する方法』 http://d.hatena.ne.jp/taichitaichi/20120110/1326175750