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 も書き方が分からないと思うので、ライブラリ情報は以下のサイトで調べてください。
- JCenter Maven -> https://bintray.com/bintray/jcenter
- Maven Central -> http://search.maven.org/
ビルドの実行
先ほど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のプラグインをインストールします。
インストールするとGradleのプロジェクトが作成できるようになりますので、先ほど作成したJavaプロジェクトをインポートしたいと思います。インポートからGradleプロジェクトを選択してください。
プロジェクトのディレクトリを選択して Build Model をクリックするとプロジェクトが表示されます。
インポートできたら完了です。dependencies で指定してたライブラリもビルドパスに追加されてます。
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プロジェクト」で取り込みます。
参考書籍
翔泳社
売り上げランキング: 152,853