なぜEGradleを選ぶのか?

2018年8月3日

Gradle IDE pack(STS Gradle plugin)

Eclipse上でgradleを使用する場合、プラグインとしてGradle IDE pack(STS Gradle plugin)を長年使用してきたのだが、非常に具合がよろしくない。

例えば、あるプロジェクトAで作業中に、別のプロジェクトBを開くと、BのみならずAのビルドパスを変更してしまうようで、再度コンパイルがかけられたり、ひどいときにはAのライブラリが見つからなくなりエラー状態になってしまう。

buildship

STSは開発が継続されず、後継はbuildshipとのことで、こちらを試してみたのだが、これも気に入らない。例えば、build.gradleに以下のように記述するとする。

sourceSets {
  main {
    java {
      srcDir 'src'; exclude '**/*Test.java';
    }
    resources {
      srcDir 'src'; exclude '**/*Test.java';
    }
  }
}

これは、buildのときにだけ*Test.javaというクラスを除外することを意図しているのだが、なぜかbuildshipはEclipseのBuild PathのSourceに「Excluded **/*Test.java」という記述を入れてしまう。開発環境からも*Testクラスが見えなくなってしまうのだ。buildshipではこういった余計なお世話が多すぎる。build.gradleに記述されたとおりにEclipseの環境を変更しようとしてしまうのだ。

コマンドプロンプト

どちらも気に入らないので、しばらくコマンドプロンプトを使用していた。単純にEclipseからcmd(Windowsの場合)を起動して、その中でgradle.batを起動するだけである。

まずは、gradle.batにパスを通し、どこからでも実行できるようにする。

Eclipseのexternal toolに以下の設定を行う。

  • Location: C:\Windows\System32\cmd.exe
  • Working Directory: ${workspace_loc:/myProject}
  • Common タブでencodingをMS932に

これで、この外部ツールを起動するとWindowsのコマンドプロンプトになるので、あとは

gradle build

などと打ち込めばよい。

EGradle

しかし、上記も疲れるので、探したところ、折衷案のようなEGradleというプラグインが見つかる。これを使用することにした。

このプラグインは、基本的にSTSやbuildshipのようにEclipseの環境に手を出すことはしない。私がこれらのプラグインに最も求めるところというのは、dependenciesを自動的にBuild Pathに入れてくれることなのだが、EGradleはそれさえもやってくれない。

–> これ間違い。dependenciesを自動でBuild Pathに入れる機能がある。GraldeのEclipseプラグインを使えばよい。本サイトでも説明している。

基本的にコマンドプロンプトを使うよりは、なんぼか楽というところである。