#navi_header|Groovy| EclipseでGradleプロジェクトを扱うには、Mavenと同様2種類の方法が存在します。 + Gradleのeclipseプラグインにより、Eclipseプロジェクトとして必要なファイルを自動生成してEclipseからインポートする。 + EclipseにGradle連携用のプラグインをインストールし、Eclipse上から直接Gradleをインポートする。 2013-04-06時点での検証環境: Win7 SP1 64bit JDK7 64bit Gradle 1.5 eclipse-jee-juno-SR2-win32-x86_64 Gradle Integration for Eclipse (Gradle IDE, 3.1.0.201210040512-RELEASE9 #more|| * Gradleのeclipseプラグインを使ったEclipseプロジェクト化 Gradle付属のEclipseプラグインを使うことで、"eclipse"タスクを実行してEclipseプロジェクトに必要な".classpath"や".project"や".settings/"を自動生成してくれます。 build.gradle: apply plugin: 'eclipse' → $ gradle cleanEclipse eclipse - Chapter 37. The Eclipse Plugin -- http://www.gradle.org/docs/current/userguide/eclipse_plugin.html 一応Eclipse WTPプロジェクトの形式にも対応してるっぽいですが試してないので不明。 また、Groovyプロジェクトとして生成されるようですので、インポートするEclipse側ではGGTSをインストールしておく必要がありそうです。 あくまでもEclipse側のJava/Groovy開発機能でプログラミング出来る迄しか調整してくれませんので、Gradleのタスクを実行する場合はEclipseの外で行うか、以下の様な設定でGroovy Script or Java ApplicationのRun/Debug設定を作成する事になりそうです。 - "Main Class" を "org.gradle.launcher.GradleMain" にする。 - "Program arguments" に Gradleタスク名を設定する。 - "VM arguments" に "-Dorg.gradle.appname=${project_name}" を設定する。 - "Classpath" の "User Entries" に "$GRALDE_HOME/lib/gradle-launcher-1.x.jar" を追加する。 →一応、上記設定で試したところGradleの起動自体は成功しました。"tomcatRun"タスクもデバッグ実行で立ち上がりました(Groovyソースに設定したブレークポイントは何故か有効にならず。Java ApplicationとしてもGroovy Scriptとしても同様)。 さらに依存関係も"gradle eclipse"タスク実行時点のもののみが".classpath"に登録され、GradleがDLしてきたjarファイルのフルパスで生成されます。そのため、生成された".classpath"をそのまま他人の環境に持って行ってもclasspathを解決出来ませんし、新たに依存関係を追加した場合はもう一度"gradle eclipse"で生成し直す必要があります。ただし、その辺はある程度調整できるようです。 参考: - GradleとEclipseを使う場合のTipsをいくつか紹介 - wadahiroの日記 -- http://wadahiro.hatenablog.com/entry/20120321/1332287707 * Eclipse用のGradle連携プラグインを使ったインポートやGradleタスクの実行 SpringSourceがEclipse用のGradle連携プラグインを開発しています。Eclipse Marketplaceからもインストール出来ます。 - SpringSource/eclipse-integration-gradle -- https://github.com/SpringSource/eclipse-integration-gradle - Gradle Integration for Eclipse -- http://marketplace.eclipse.org/content/gradle-integration-eclipse Wiki上にドキュメントもスクリーンショット付きで用意されてますし、何も見なくともGradleプロジェクトの新規作成や、Gradleプロジェクトのインポートなどある程度操作出来ると思います。 本記事を書いている時点では 3.1.0.201210040512-RELEASE を使いました。 利点としてはGraldeのタスク実行がEclipse上から Run で実行出来る点でしょうか。また、build.gradleに apply plugin: 'eclipse' が無くとも自動的にEclipseプロジェクト化を行ってくれる点も便利です。 とはいえ、まだ進化中らしく、Maven連携のm2eプラグインと比較してみると若干気になる動作もありました。 - m2eではmavenビルドをRun/Debugの両方から実行できるため、maven側でTomcatを起動してWebアプリをEclipse上でデバッグ実行というテクニックが使えたのですが、現時点ではGradleタスクをデバッグ実行する機能はなく、"Run"しか出来ないようです。 - m2eですとGitHubやSVN上のプレーンなmavenプロジェクトを、チェックアウトと同時にEclipseプロジェクト化出来ましたが、Gradleプラグインではチーム開発機能との連携は薄いらしく、チェックアウトと同時のEclipseプロジェクト化は出来ませんでした。まずチェックアウトしておき、その後GradleプロジェクトとしてインポートしてEclipseプロジェクト化します。一旦プロジェクトをEclipseから除去して、その後GitHubやSVNプロジェクトとしてもう一度インポートし直します。これでようやく、チーム開発機能が有効化された状態のGralde-Eclipseプロジェクトとしてインポート出来ます。 また、一旦実行したGradleタスクをEclipse側から強制的に停止する方法がわかりませんでした。試しにEclipse上で"tomcatRun"タスクを実行してみたら、ずっとタスクが実行中の状態になり、Debug Perspectiveのプロセス一覧に表示されるものの、停止などいつもなら使えるはずのアイコンがグレーアウトされ、止めることが出来ませんでした・・・。 参考: - eclipse + wtp + gradle で開発環境構築 - hd 4.0 -- http://d.hatena.ne.jp/hagi44/20120615/1339752803 * 2013-04-09時点の感想 - お手軽さでは "eclipse-integration-gradle" の圧勝。 -- ただしGradleタスクがDebug実行出来ないのはプロジェクトによってはイマイチに見えるかも。とはいえ、Eclipse WTP側に合わせると割り切れば平気そう。 - 細かい調整が可能になりそうなのは、むしろGradleのeclipseプラグインによるEclipseプロジェクト化の方かも。 -- 生成するXML側で色々カスタマイズ効きそうなので、頑張れば色々環境依存性を低減できるっぽい。Run/Debug Configurationを同時に生成とか出来たらもっと運用が楽になるかも。 個人で使うならどちらでもそれなりに利用できるレベルにあると感じます。ただし、複数人のチーム開発で開発環境を揃え、日常的なコンパイル・デバッグ実行の流れを作るにはそれぞれの長所・短所についての割り切りや、色々とノウハウが必要になりそうな感じを受けました。とはいえそれは時間の問題という気もしますので、引き続きこの話題についてはwatchしていきます。 #navi_footer|Groovy|