EGradleによる操作の一例

2018年8月3日

簡単なサンプルでEGradleによる操作を試してみる。

サンプルの作成

Eclipse上でegradlesampleという名前のjavaプロジェクトを作成し、egradlesampleパッケージの下に以下を作成する。ライブラリとしてGuiceを無理矢理使ってみる。

package egradlesample;

import com.google.inject.*;

public class Main {
public void execute() {
System.out.println("hello, world");
}
public static void main(String[]args) {
Guice.createInjector().getInstance(Main.class).execute();
}
}

プロジェクトのトップにbuild.gradleを作成する。少なくとも「apply plugin: ‘java’」だけでなく、「apply plugin: ‘eclipse’」も必要なことに注意。この理由は後でわかる。

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

/** アプリケーションバージョン */
version = '1.0.0'

// 全ソースがUTF-8、ソース・生成クラスバージョンの指定
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8

def PRODUCT_JAR = 'build/sampleapp.jar'
def APP_NAME = "SampleApp"
def PRODUCT_MAIN_CLASS = 'egradlesample.Main'

// ソースの指定
sourceSets {
main {
java {
srcDir 'src';
}
resources {
srcDir 'src';
}
}
}

// 依存取得先と依存ライブラリの指定。依存ライブラリのlibフォルダへのコピー
repositories {
maven {
url CENTRAL_REPOSITORY
}
maven {
url INHOUSE_REPOSITORY
}
}
dependencies {
compile 'com.google.inject:guice:4.1.0'
}

// 通常のプロダクトjarを作成する。
jar {
// 出力先ファイル
destinationDir = file('.')
archiveName = PRODUCT_JAR

from sourceSets.main.output

// マニフェスト
manifest {
attributes 'Implementation-Title': APP_NAME, 'Implementation-Version': version
attributes "Main-Class" : PRODUCT_MAIN_CLASS
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude '.readme'
}
}

依存関係の解決

dependenciesに指定したGuiceをビルドパスに入れなければならないが、これには、最左のボタン「Refresh all eclipse dependencies of current root project」をクリックする。

Eclipseのビルドパスを見てみると、ライブラリが追加されたことがわかる。

この仕組みとしては、ボタンが押されたときにEGradleが単純に「gradle cleanEclipse eclipse」を呼び出しているだけ。これについてはgradleのeclipseプラグインを参照のこと。

※さらなる情報がGradleページにある。

もとから、gradle自体に備わる機能を利用して、eclipseのビルドパスその他を設定しているだけであり、コマンドラインで「gradle cleanEclipse eclipse」と叩く代わりに、ボタン一発にしただけのもの。

そして、単に二つのタスクを連続して呼び出すだけなので、後に述べるクイックラウンチダイアログに「cleanEclipse eclipse」と入力しても全く同じ効果になる(はず)。

ビルド

「Directly execute gradle tasks by EGradle quick launch dialog」ボタンをクリックするか、あるいは、CTRl+ALT+Shift+Endを押してクイックランチダイアログを表示させる。

「jar」と入力してEnter、ビルドされる。

プロジェクトをリフレッシュすると、buildフォルダの下にsampleapp.jarファイルが作成されている。

注意点

ルートプロジェクトとしているプロジェクトが消えると、EGradleはEclipse内の制御ができなくなってしまう。プロジェクトを右クリックしてもメニューの中にEGradleが出てこない。

例えば、ワークスペース内に作成したプロジェクトをgitレポジトリに共有させると、プロジェクトフォルダごと場所が移動してしまうが、EGradleからは「ルートプロジェクトが無くなった」と認識されてしまう。

この時には、Preferenceでもう一度ルートプロジェクトを設定してあげる必要がある。