プロジェクト

全般

プロフィール

Gradleの使い方

Gradleを使う最初の一歩

Gradleツールのセットアップ

Gradle公式サイト(次のURL)から[Download Gradle 2.5]をクリックするとGradle一式がアーカイブされたファイルがダウンロードできます。(バージョンはその時点の最新)
https://gradle.org

  • 2015-12-12時点で最新版は、 gradle-2.9-all.zip

Windows OS環境へのGradleのインストール

インストール先(例、C:\Program Files\Java の下)に上述のアーカイブファイルを解凍し展開します。
環境変数PATHに、C:\Program Files\Java\gradle-2.5\bin を追加します。

最小限のJavaビルドプロジェクト

まず最初は、もっとも最低限の記述でJavaソースファイルをビルドするGradleのビルドプロジェクトを作成します。

プロジェクトディレクトリの作成とJavaソースファイルの配置

Gradleを使って開発するJavaプログラムのプロジェクトディレクトリを作成し、ビルドするJavaソースファイルを次のディレクトリ構造で配置します。このディレクトリはGradleのJavaプラグインが想定しているディレクトリ構造となります。

HelloApp
  +-- src
        +-- main
              +-- java
                    +-- com
                          +-- torutk
                                +-- hello
                                      +-- Hello.java
  • Hello.java
package com.torutk.hello;

public class Hello {
    public static void main(String... args) {
        System.out.println("Hello, gradle build");
    }
}
Windows OS環境でのディレクトリ作成
C:\> cd work
C:\work> mkdir HelloApp\src\main\java\com\torutk\hello
C:\work> 

ビルド設定ファイルの作成

プロジェクトディレクトリ直下に、Gradleのビルド設定を記述したbuild.gradleファイルを置きます。

HelloApp
  +-- buld.gradle
  +-- src
        +-- main
              (以下略)
  • build.gradle
apply plugin: 'java'

javaプログラムをビルドするためのプラグインを指定します。javaプラグインの想定するディレクトリ構造にソースファイルが格納されていると自動的にビルド対象としてビルドします。

ビルドの実行と生成されるディレクトリ・ファイル

インストールして環境変数PATHを通した中にgradle.batがあり、これを実行するタスクを引数に実行します。

C:\work\HelloApp> gradle build
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 1.518 secs
C:\work\HelloApp> 

ビルド結果次のディレクトリ・ファイルが生成されます。

C:\work\HelloApp> tree /F
C:.
│  build.gradle
│
├─.gradle
│  └─2.5
│      └─taskArtifacts
│              cache.properties
│              cache.properties.lock
│              fileHashes.bin
│              fileSnapshots.bin
│              outputFileStates.bin
│              taskArtifacts.bin
│
├─build
│  ├─classes
│  │  └─main
│  │      └─com
│  │          └─torutk
│  │              └─hello
│  │                      Hello.class
│  │
│  ├─dependency-cache
│  ├─libs
│  │      HelloApp.jar
│  │
│  └─tmp
│      ├─compileJava
│      └─jar
│              MANIFEST.MF
│
└─src
    └─main
        └─java
            └─com
                └─torutk
                    └─hello
                            Hello.java

プログラムの実行

最小限のプロジェクトでは、ビルドしたプログラムを実行するタスクはないので、普通のJavaコマンドからプログラムを実行します。

C:\work\HelloApp> java -cp build\classes\main com.torutk.hello.Hello
Hello, gradle build

C:\work\HelloApp>

または、生成されたJARファイルを指定して実行します。

C:\work\HelloApp> java -cp build\libs\HelloApp.jar com.torutk.hello.Hello
Hello, gradle build

C:\work\HelloApp>

このJARファイルは、実行可能JARではないので、-jarオプション指定では実行できません。

ビルド生成物の削除(クリーン)

ビルドによって生成されたディレクトリ・ファイルを削除します。

C:\work\HelloApp> gradle clean
:clean

BUILD SUCCESSFUL

Total time: 1.417 secs
C:\work\HelloApp> 

インストールと実行を行うビルドプロジェクト

applicationプラグインを使用し、runタスクによるプログラムの実行と、installAppタスクによるインストールを行います。
ただし、これは、実行可能JAR形式を生成しての実行ではありません。
インストールタスクを実施すると、実行しているOSに依存するスクリプトファイル(Windowsであればバッチファイル)を生成し、それを実行することでアプリケーションを実行します。

build.gradleの記述(変更)

applicationモジュールを使用し、実行するmainメソッドを持つクラスを定義します。

apply plugin: 'application'

mainClassName = "com.torutk.hello.Hello" 

プログラムの実行

applicationモジュールにはrunタスクが定義されているので、gradleからプログラムを実行することができます。

C:\work\HelloApp> gradle run
:compileJava
:processResources UP-TO-DATE
:classes
:run
Hello, gradle build

BUILD SUCCESSFUL

Total time: 2.23 secs
C:\work\HelloApp> 

実行可能JARを作る(暫定処置)

単独JARファイルであれば、build.gradleに次の定義を追加して実行可能JARファイルとすることができます。

jar {
  manifest {
    attributes("Main-Class": "com.torutk.hello.Hello")
  }
}

runタスクではjarファイルは生成されないので、jarタスクを実行します。

次の一歩

ライブラリを使用する

Mavenリポジトリを指定する

Mavenリポジトリ上のライブラリを利用するときは、まず使用するリポジトリを指定します。
あらかじめ定義済みのMavenの場合は次のように定義します。

repositories {
  mavenCentral()
}

他の定義済みリポジトリ

  • jcenter()
    bintray.com の提供するmavenリポジトリ、最近はこっちが主流かも

独自のリポジトリを使用するときは、そのリポジトリのURLを指定します。

repositories {
  maven {
    "http://repo.example.com/maven2" 
  }
}

使用するライブラリを指定する

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

コンパイル時に使用するライブラリは、compileで名称を指定します。
テスト時に使用する(開発対象プログラムの中では使用しない)libraryは、testCompileで名称を指定します。

Gradleの機能

プラグイン

javaプラグイン

Javaのライブラリを作成する際に有用なプラグインです。次のタスクが提供されています。

classes
testClasses
compileJava
compileTestJava
jar
test
javadoc
clean
assemble
check
bulid
buildNeeded
buildDependents
processResources
processTestResources
uploadArchives

新規にプロジェクトを作成するときのテンプレート生成も提供されています。

work$ gradle init --type java-library
:wrapper
:init

BUILD SUCCESSFUL

Total time: 1.62 secs

work$ ls
build.gradle*  gradle/  gradlew*  gradlew.bat*  settings.gradle*  src/

生成されるbuild.gradleは次になります(コメントを削除しています)。

apply plugin: 'java'

repositories {
    jcenter()
}

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

クリップボードから画像を追加 (サイズの上限: 1 GB)