SEチャンネル

ITについてできる限り書くメモ

JavaビルドツールGradle入門(1/2)

f:id:tkmtys:20151012232244p:plain

次世代Javaビルドツール(と言われている)Gradle入門(1/2)。今回はGradleを導入し、eclipseでGradleプロジェクトの作成とビルドができるところまで解説する。

Gradleについて

Gradleを一言で言うなら、Javaビルドツールとして既に有名なAntとMavenの良いところを取り込んだビルドツールだ。AntとMavenそれぞれの特徴は以下のようになる。

ビルド処理の記述 ライブラリ依存関係の管理
Ant タスクという単位でユーザが作成 なし
Maven プラグインで用意されたものを使用 あり

Mavenはライブラリ依存関係の管理を行えるという点でAntより優れているが、ビルド処理の記述という点ではAntほどの自由度はない。Gradleはライブラリ管理機能を備えつつ、Antのようにユーザがビルドスクリプトを記述できことを目指したビルドツールだ。また、AntとMavenはビルド設定ファイルをxml形式で記述するのに対し、GradleではGroovyというスクリプトで記述するというのも大きな違いだろう。

GradleはAndroidアプリの開発環境のAndroid Studioで標準ビルドツールに採用されたため、今後Gradleが主流になるのは間違いない。

eclipseプラグインのインストール

ローカル環境でコマンドラインでビルドすることはほぼないので、今回はeclipseプラグインを導入する。eclipseを起動しメニューバーから「Help」>「Eclipse Marketplace」を選択する。検索欄にgradleと入力し一番最初に表示される「Gradle IDE Pack」をインストールする。このpluginの中にクライアントも同梱されているため、特にGradleクライアントをインストールしなくてもよい。

f:id:tkmtys:20151012181525p:plain

インストール完了後はeclipseを再起動する。

sponsor

プロジェクトの作成

無事Gradleのeclipseプラグインがインストールできたら、Gradleのサンプルプロジェクトを作成して実際にビルドできるか確認する。

「Package Explorer」の余白を右クリックし、「New」>「Other」をクリックする。新規作成ウィザードが起動するのでgradleと入力して、表示されるGradle Projectを選択する。

f:id:tkmtys:20151012182353p:plain

Gradle Projectのウィザードが表示されるので、Project Nameに作成するプロジェクト名を入力する。Locationはデフォルトで埋まっている値でOK。Sample Projectの欄ではひな形を選択でき、今回はJava Quickstartを選択した。他には「Java API and Implementation」と「flat-java-multiproject」があるようだが、これらを使う機会はあまりなさそうだ。

f:id:tkmtys:20151013001148p:plain

Finishを押すとサンプルプロジェクトが生成されているはずだ。

プロジェクトのビルド

生成されたプロジェクトは、以下のようなツリー構造になっている。

f:id:tkmtys:20151012182612p:plain

ディレクトリ構成はmavenで見慣れた、

  1. src/main/java
  2. src/main/resources
  3. src/test/java
  4. src/test/resources

が並んでいる。ビルド結果の出力先はAnt標準のbuildフォルダである。個人的にはmavenの標準出力先のtargetという名前は好きでなかったのでこれは嬉しい。一番下にあるbuild.gradleがビルドの設定ファイルだ。中を開いてみると以下のような内容が記述されている。

apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.5
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart',
                   'Implementation-Version': version
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

test {
    systemProperties 'property': 'value'
}

uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}

いろいろ編集する前にとりあえずこのままでビルドしてみよう。対象のプロジェクトを右クリックして「Run As」>「Gradle Build」を選択する。

f:id:tkmtys:20151012232800p:plain

Gradleはタスクという単位でビルド処理を実行する。実行するタスク名を指定するよう聞かれるので、jarと入力し、Runを実行する。

f:id:tkmtys:20151012233742p:plain

下のようなコンソールが出力されて、build/libs配下にGradleSample-1.0.jarという成果物ができていればビルド成功となる。

[sts] -----------------------------------------------------
[sts] Starting Gradle build for the following tasks: 
[sts]      jar
[sts] -----------------------------------------------------
:compileJava
:processResources
:classes
:jar

BUILD SUCCESSFUL

Total time: 0.719 secs
[sts] -----------------------------------------------------
[sts] Build finished succesfully!
[sts] Time taken: 0 min, 0 sec
[sts] -----------------------------------------------------

まとめ

今回はJavaビルドツールであるGradleを使ってビルドを実行した。次回はGradleの設定ファイルであるbuild.gradleを色々編集してビルドする方法について解説する。

sponsor