ブログトップ 記事一覧 ログイン 無料ブログ開設

Groovyラボ RSSフィード

2012-04-22

GroovyFX 初の正式リリース(翻訳)

原文: Pleasing Software: GroovyFX First Official Release

http://2.bp.blogspot.com/-HSzaJlyitE4/T1OwmQKBttI/AAAAAAAAAZs/0uoERu-x7gI/s200/helloGroovyFX.png

GroovyFX v0.1が、Mavenのセントラルリポジトリから、またはGroovyFXのwebサイトから直接バイナリJarファイルとして(「Community」の下の「Download」リンクか、あるいはここをクリック)入手できるようになりました。このリリースはJavaFX v2.0.2と互換性があります。

GroovyFXをJavaFX v2.1開発者プレビュー版と一緒に使う必要がある場合には、GroovyFX v0.2のスナップショットを使う必要があります。このポストの後半部分でその例を示します。

Grab対応

GroovyFXがMavenセントラルにあることで(SonatypeのOSSホスティングのおかげです!)シンプルなテストから大きなプロジェクトまで、どんな場面でもGroovyFXを簡単に使えるようになります。GroovyGrapeシステムの一部であるGrabアノテーションを使った、次のシンプルなスクリプトを考えてみてください。

このスクリプトは、以下のようにしてコマンドラインから簡単に実行できます

groovy -classpath $JAVAFX_HOME/rt/lib/jfxrt.jar helloGroovyFX.groovy

プロの小技:GroovyFXプロジェクトのフェロー・メンバであるDierk Königは、どのGroovyスクリプトでもJavaFXライブラリを利用できるようにする、以下の小技(このページでも説明されています)を提案してくれました:

mkdir ~/.groovy/lib
ln -s $JAVAFX_HOME/rt/lib/* ~/.groovy/lib/ 

これで次のようにタイプできます:

groovy groovyFXHello.groovy

プロジェクトのビルド

GroovyFXは、次のGradleスクリプトで示すように、単にビルドファイルの依存関係にそれ自身を含めることにより、より大きなGradleMavenプロジェクトの一部になることができます。

このビルドスクリプトは、JavaFXライブラリを見つけるためにJAVAFX_HOME環境変数を使っています。また、MavenセントラルリポジトリにあるGroovyFX 0.1への依存関係を宣言しています。

さらに、Dierk考案のmakeDirsタスクも取り込んであります。このスクリプトをプロジェクトのルートディレクトリにコピーしておけば、gradlew makeDirsを実行して、src/main/ や src/test といったディレクトリを含んだ、標準的なMaven/Gradleのプロジェクト構造を作ることができます。

次に、前述のGroovyFXのHello Worldスクリプトを src/main/groovy ディレクトリにコピーします(ここでは、Gradleビルドスクリプトの中でGroovyFXへの依存関係を明示的に宣言しているので、@Grabアノテーションは削除します)。そしてgradlew clean runを実行すれば、プロジェクトがコンパイルされ、実行されて、このポストの冒頭に示したウィンドウが表示されるはずです。

Mavenスクリプトは自虐的な読者の方への課題とします。

GroovyFX 0.2-SNAPSHOT の利用

最新のJavaFX 2.1開発者プレビュー版と一緒に使いたい場合には、最新のGroovyFX 0.2ライブラリのスナップショットを入手する必要があります。Sonatypeのリポジトリには、最新の0.2に対応したスナップショット版もあるので、前述のGradleビルドスクリプトを以下のように変更すれば使うのは簡単です。

ひとつ注意すべき点は、GroovyFX 0.2ではスタートアップの構文が少し変更されたことです。SceneGraphBuilderを明示的に生成する必要はなくなりました。これは自動的に生成され、delegateとしてstartクロージャに渡されます。以下のスクリプトは、GroovyFX 0.2と互換になるように修正したHello Worldの例です。

以上です!ぜひこの新しいリリースを試して、問題点改善提案などをお聞かせください。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。