EGradleによる操作の一例
簡単なサンプルで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でもう一度ルートプロジェクトを設定してあげる必要がある。