Gradleで始めるJavaプロジェクトとEclipseのプラグイン

スポンサーリンク

GradleでのJavaプロジェクトの初め方です。タイトルのEclipseのプラグインとは、Gradle側からのEclipseプラグインと、Eclipse側からのGradleプラグインがありますので両方紹介します。

GradleでHelloWorld!

GradleはビルドツールですがGroovyというスクリプト言語で記述します。おなじみのHelloWorld!から試してみたいと思います。

適当なディレクトリを作成して、その中にbuild.gradleというファイルを作成してください。これはビルドスクリプトのデフォルトファイル名です。

task hello << {
  println 'Hello World!'
}

記述するのはこれだけです。早速実行してみましょう。

$ gradle hello
:hello
Hello World!

BUILD SUCCESSFUL

Total time: 3.995 secs

BUILD SUCCESSFULと表示されれば成功です。build.gradleに記述されたタスクのhelloが実行されたのがわかると思います。

Javaプロジェクトの生成

一からプロジェクトを作る場合はgradle initタスクを実行することによってプロジェクトの初期化をしてくれます。Javaプロジェクトの場合は--type java-libraryをつけてください。その他のプロジェクトについては  Build init types を参考。

$ mkdir java_project
$ cd java_project
$ gradle init --type java-library
:wrapper
:init

BUILD SUCCESSFUL

Total time: 4.206 secs

以下のようにJavaプロジェクトのディレクトリやGradle関連のファイルが自動で作成されました。srcディレクトリにはサンプルのプログラムが入っています。Gradleは規約に則ったビルドが行われるため、ソースコードはsrc/main/javaに、テストコードはsrc/test/javaに作成するようにしましょう。ディレクトリ構造を変える事は可能ですがビルドスクリプトの記述量が増えます。

$ ls -la
total 40
drwxr-xr-x 9 username  staff   306  4 13 01:15 .
drwxr-xr-x 9 username  staff   306  4 13 01:14 ..
drwxr-xr-x 3 username  staff   102  4 13 01:15 .gradle
-rw-r--r-- 1 username  staff  1212  4 13 01:15 build.gradle
drwxr-xr-x 3 username  staff   102  4 13 01:15 gradle
-rwxr-xr-x 1 username  staff  5080  4 13 01:15 gradlew
-rw-r--r-- 1 username  staff  2404  4 13 01:15 gradlew.bat
-rw-r--r-- 1 username  staff   642  4 13 01:15 settings.gradle
drwxr-xr-x 4 username  staff   136  4 13 01:15 src

作成されたビルドスクリプトbuild.gradleを見てみましょう。コメント部分を除くと必要なのは以下の3箇所のみです。

apply plugin: 'java'

repositories {
    jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.7'
    testCompile 'junit:junit:4.12'
}

apply plugin

apply plugin: 'java'ではJavaプラグインを適用しています。これによりJavaプロジェクトに対する規約や、様々なタスクが追加されます。全タスクの説明はここでは省きますがgradle tasksコマンドを実行すると、そのプロジェクトで実行できるタスクが確認できるので参考にして下さい。javaプラグインを適用していない時と比べてタスクが増えてるのがわかると思います。

repositories

repositories { jcenter() }dependenciesで指定したライブラリをダウンロードするリポジトリになります。本来はリポジトリのURLを指定しないといけませんが、Maven Cenralリポジトリ、JCenter Mavenリポジトリのような、よく使用される一部のリポジトリはmavenCentral()jcenter()のように記述するだけで設定できます。Gradleもデフォルトになってるように最近ではJCenterリポジトリが主流のようです。

dependencies

dependencies { ~ }については、ここで指定したライブラリをリポジトリから自動でダウンロードしてくれます。毎回ライブラリをダウンロードして解凍、jarファイルを取り出してクラスパスに追加...なんて面倒な事をしなくても大丈夫です。compile はコードのコンパイルおよび実行に必要なライブラリを、testCompile にはテストコードの実行に必要なライブラリを指定してください。指定形式はgroup:name:versionとなっています。

とはいってもこれだけの情報だと必要なライブラリがあっても、group も name も書き方が分からないと思うので、ライブラリ情報は以下のサイトで調べてください。

ビルドの実行

先ほどgradle initで作成したプロジェクトでビルドしてみます。

$ gradle build
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test
:check
:build

BUILD SUCCESSFUL

Total time: 5.546 secs

コロン付きの文字が実行されたタスクになります。ライブラリのダウンロードからコードのコンパイル、jarファイルへのアーカイブとテストの実行まで行われました。ビルドの実行結果はbuildディレクトリ以下に格納されています。

$ ls build/libs   
gradle_test.jar   # src/main以下のコードをアーカイブしたJARファイル
$ open build/reports/tests/index.html   # テストレポートをブラウザで確認

EclipseのGradleプラグイン

Eclipseの「ヘルプ -> Eclipseマーケットプレイス」からGradleのプラグインをインストールします。

f:id:tasukujp:20150416105059p:plain

インストールするとGradleのプロジェクトが作成できるようになりますので、先ほど作成したJavaプロジェクトをインポートしたいと思います。インポートからGradleプロジェクトを選択してください。

f:id:tasukujp:20150416110158p:plain

プロジェクトのディレクトリを選択して Build Model をクリックするとプロジェクトが表示されます。

f:id:tasukujp:20150416110326p:plain

インポートできたら完了です。dependencies で指定してたライブラリもビルドパスに追加されてます。

f:id:tasukujp:20150416114139p:plain

GradleのEclipseプラグイン

GradleのEclipseプラグインを使うことで、GradleからEclipseのプロジェクトを作ることもできます。

使い方はビルドスクリプトのbuild.gradleにプラグインの記述を追加してください。

apply plugin: 'eclipse'

追加した状態で次のコマンドを実行します。

$ gradle eclipse
:eclipseClasspath
:eclipseJdt
:eclipseProject
:eclipse

BUILD SUCCESSFUL

Total time: 4.738 secs

Eclipse関連のタスクが実行され、Eclipseのプロジェクトに必要な.classpathなどのファイルが作成されました。

$ ls -la
total 56
drwxr-xr-x  13 username  staff   442  4 16 11:14 .
drwxr-xr-x   3 username  staff   102  4 14 11:08 ..
-rw-r--r--   1 username  staff  1332  4 16 11:14 .classpath
drwxr-xr-x   3 username  staff   102  4 14 11:08 .gradle
-rw-r--r--   1 username  staff   354  4 16 11:14 .project
drwxr-xr-x   3 username  staff   102  4 16 11:14 .settings
drwxr-xr-x   8 username  staff   272  4 14 11:09 build
-rw-r--r--   1 username  staff  1236  4 16 11:13 build.gradle
drwxr-xr-x   3 username  staff   102  4 14 11:09 gradle
-rwxr-xr-x   1 username  staff  5080  4 14 11:09 gradlew
-rw-r--r--   1 username  staff  2404  4 14 11:09 gradlew.bat
-rw-r--r--   1 username  staff   642  4 14 11:09 settings.gradle
drwxr-xr-x   4 username  staff   136  4 14 11:09 src

後は通常のプロジェクトと同様に「ファイル -> 新規 -> Javaプロジェクト」で取り込みます。

f:id:tasukujp:20150416113923p:plain

参考書籍

Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築
綿引 琢磨 須江 信洋 林 政利 今井 勝信
翔泳社
売り上げランキング: 152,853