Groovy > Gradleの使い方

更新日 2015-08-20
広告
Gradleは、Apache AntやMavenのような処理を、Groovyで書けるビルドフレームワークです。 以下、Linuxを前提に、Gradleの使い方を説明します。

インストール

まず、以下のコマンドでgvmコマンドをインストールします。
$ curl -s get.gvmtool.net | bash
gvmコマンドを使い、groovyとgradleをインストールします。 以下のコマンドで、インストール可能なバージョン一覧を表示できます。
$ gvm list gradle
以下は、バージョン2.6をインストールする例です。
$ gvm install gradle 2.6

ディレクトリ構成

mavenと似たディレクトリ構成としておいたほうが、色々と楽です。
project/
  - build.gradle  (これがビルドスクリプト)
  - lib/
  - src/
    - main/
      - java/ (Javaのソースコード)
      - resources/ (設定ファイルなど)
    - test/   (テストコード)
      - java/ (Javaのテストコード)
      - groovy/   (Groovyのテストコード)
build.gradleというファイルが、Gradleのビルドスクリプトになります。

Javaソースコードのコンパイル

build.gradleに以下を記述します。
apply plugin: 'java'
rootディレクトリ(build.gradleがあるディレクトリ)で、以下を実行すると、src/main/java 以下のjavaファイルがコンパイルされます。
$ gradle compileJava

Javaテストコードの実行

以下のコマンドで、src/test/java 以下のテストコードがコンパイルされ、実行されます。
$ gradle test

Groovyテストコードの実行

groovyでテストクラスを実装した場合は、src/test/groovy以下に配置します。 そして、build.gradleに以下を記述します。
apply plugin: 'groovy'
また、レポジトリと、groovyのjarファイルを明示的に指定する必要があります。 ネットにつながる環境であれば、mavenレポジトリを使うのが楽です。
repositories {
    mavenCentral()
}

dependencies {
    testCompile 'org.codehaus.groovy:groovy:2.4.4'
}
レポジトリやtestCompileの設定を記述しないと、groovyによるテストは失敗します。 これで、groovyによるテストを実行できます。
$ gradle test
特定のテストクラスだけを実行するには、test.singleパラメータを指定します。
$ gradle -Dtest.single=Sample test
この場合、クラス名に'Sample'を含むテストクラスが実行されます。;

テスト時の標準出力

デフォルトでは、テストを実行するときに、何も標準出力されません。 標準出力を有効にする場合は、以下のように設定しておきます。
test {
  testLogging.showStandardStreams = true                                                             
}

テスト時の情報

テスト時の情報を増やすには、以下のようにテストを実行します。
$ gradle test -i
-iオプションを指定すると、非常に多くの情報が出力されます。 テストのエラーのときのスタックトレースだけ出力したい場合は、以下のように、testLogging.exceptionFormatをfullに設定しておきましょう。
test {

  testLogging {
    exceptionFormat = 'full'
  }
また、以下のように、afterTestプロパティを実装して、自由に情報を出力することも可能です。
test {
  afterTest { desc, result ->
    println desc.name
  }
}
afterTestはgradleのTestListenerのメソッドです。 引数のdescはTestDescriptorクラス、resultはTestResultクラスです。

必ずテストを実行

プログラムが変更されていない場合、gradle test を実行しても、gradleはテストを実行しません。 プログラムの変更有無にかかわらずテストを実行したい場合は、以下のようにします。
$ gradle cleanTest test
もしくは、build.gradleに以下を追加します。
test.dependsOn 'cleanTest' 

zipパッケージの作成

開発したアプリケーションをzipでパッケージする方法です。
apply plugin: 'application'

version = '0.1'
mainClassName = 'test.App'
versionは、適宜、変更してください。 mainClassNameは、mainメソッドが実装されているクラスを指定してください。
$ gradle distZip
上記のコマンドを実行すると、zipパッケージが作成されます(buildディレクトリ以下)。 compile dependencyとして指定したライブラリ群は、は一緒にパッケージされます。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system