{cdate:2010-07-16}
{what:groovy,gradle}

  1. Gradle x Groovy : Groovy(+Java) を build して executable jar にする HelloWorld な話

Groovy(http://groovy.codehaus.org/)

Gradle(http://www.gradle.org/)(version 0.9)
でビルドしてみます。
Antでビルドするのも楽ですが、Gradleはさらに簡単になります。

> 関連: Ant で Groovy コードを build する(build-with-ant.html)

    1. favoriteLangPrinter.jar をつくる

Hello World! 的な例として favoriteLangPrinter.jar というexecutable な jar を
gradle を使ってビルドします。

ここではJavaとGroovyを混ぜた状態にします。
方針としては Interface を .java で記述し、実装は .groovy でいきます。

      1. インタフェースの用意 FavoriteLangPrinter.java

{codeinclude:build-groovy-using-gradle/favoriteLangPrinter/src/main/groovy/FavoriteLangPrinter.java}

      1. 実装の用意 FavoriteLangPrinterImpl.groovy

{codeinclude:build-groovy-using-gradle/favoriteLangPrinter/src/main/groovy/FavoriteLangPrinterImpl.groovy}

      1. 起動用の main.groovy

{codeinclude:build-groovy-using-gradle/favoriteLangPrinter/src/main/groovy/main.groovy}

    1. Gradleでビルドするためのディレクトリレイアウト

プロジェクトのルートになるディレクトリ名がデフォルトで executable jar の
ファイル名になる点に注意。

GradleではあらかじめGradleが想定しているディレクトリレイアウトを守ることで
設定の手間を減らすことができます。

      1. プロジェクトのディレクトリレイアウト

- build.gradle(#build.gradle)
- src/
- main/
- groovy/
- FavoriteLangPrinter.java
- FavoriteLangPrinterImpl.groovy
- main.groovy

    1. build.gradle

<script src="http://gist.github.com/477774.js"></script>

{commentout}
{codeinclude:build-groovy-using-gradle/favoriteLangPrinter/build.gradle}
{commentout}

> 関連 : gradle で executable jar をつくる方法(http://stone.my-notebook.net/gradle-and-executablejar.html)

    1. ビルド

{console}
$ cd /path/to/favoriteLangPrinter
$ gradle
{console}

これで、 executable な jar である
favoriteLangPrinter/build/libs/favoriteLangPrinter.jar ができます.

デフォルトタスクとして、javadoc と groovydoc も生成することになっているので
それぞれ生成されます。

    1. 実行

{console}
$ java -jar favoriteLangPrinter/build/libs/favoriteLangPrinter.jar
Python
{console}