Gradle + eclipse + WTP
Gradle + eclipse + WTP の組み合わせでのプロジェクト作成をちょっと整理。
まずは、ターミナルからappという名前のプロジェクトを作成する。
% APP=app % mkdir -p $APP/src/{main,test}/{java,resources,webapp} % mkdir -p $APP/src/main/webapp/WEB-INF % cd $APP % echo " apply plugin: 'java' apply plugin: 'war' apply plugin: 'eclipse-wtp' task wrapper(type: Wrapper) { gradleVersion = '1.11' } eclipse { pathVariables 'GRADLE_USER_HOME': gradle.gradleUserHomeDir } eclipseWtpComponent.dependsOn cleanEclipseWtpComponent sourceCompatibility = targetCompatibility = 1.6 [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' repositories { mavenCentral() } dependencies { compile group: 'javax.servlet', name: 'servlet-api', version: '2.5' } " > build.gradle % gradle eclipse
build.gradleの
eclipse { pathVariables 'GRADLE_USER_HOME': gradle.gradleUserHomeDir }
の部分は、eclipseの設定ファイル(.classpathとか)にgradleで落としたjarが、フルパスで入らないようにするための記述。バージョン管理にIDEの設定ファイルを突っ込む場合、個人環境のフルパスを含めたくないため。
以下のコマンドでeclipseの設定ファイル達が生成されます。
% gradle eclipse
で、次は eclipse 側から、クラスパス変数 GRADLE_USER_HOME を設定します。
[Window] - [Preferences] - [Java] - [Build Path] - [Classpath Variables] を選択し、[New]ボタンを押下。
Name: GRADLE_USER_HOME Path: C:\Users\アカウント名\.gradle
と設定し、[OK]ボタンを押下。
[File] - [Import] - [Existing Projects into Workspace]
で生成したプロジェクトをインポートする。
依存jarが増えた場合は、build.gradleの修正後、再度 gradle eclipse を叩く。eclipse側にもgradleのプラグインがあるけど、使わないほうが無難なのかな。。mavenのm2eのように。
微妙だと思ったのが、依存jarを減らした場合。gradle eclipseを叩くと、.classpathから設定が消えるが、org.eclipse.wst.common.component からは消えない。直接ファイルから消すか、eclipes側から、[Project] - [Deployment Assembly]と進んで remove するのかなと。
(2013-06-19追記)
org.eclipse.wst.common.component から不要jarが消えてくれない件は、
eclipseWtpComponent.dependsOn cleanEclipseWtpComponent
として、最初にclean実行されるようにしとけば大丈夫でした。
以上