javaのgetter/setterという冗長部分を良い具合に隠してくれるlombokをよく使いますが、久しぶりに入れ直したらうまく動かなかったので自分へのメモとして。
環境
OS: OSX El Capitan
Eclipse 4.5.2
Gradle 2.9
lombok 1.16.6
lombok導入
lombokはgradle経由でいれます。
lombokはコンパイル時のみ必要なライブラリなので、compileじゃなくてprovidedらしい。
configurations {
provided
}
sourceSets {
main { compileClasspath += configurations.provided }
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-jdbc')
provided('org.projectlombok:lombok:1.16.6')
compile('org.springframework.boot:spring-boot-starter-web')
runtime('mysql:mysql-connector-java')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
eclipse {
classpath {
plusConfigurations += [configurations.provided]
noExportConfigurations += [configurations.provided]
containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
}
}
eclipseの設定に追加
上記でgradleをリフレッシュすると、lombokが参照ライブラリーとしてダウンロードされて使えるようになる。
かと思いきや、@Dataアノテーションをつけてもgetter/setterが生成されない・・・
そんなときは、eclipse.iniファイル内に下記を追加すればいけた。
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
追加したらeclipse再起動してね。
ちなみにeclipse.iniファイルの場所は
Eclipse.app > 右クリック[パッケージの内容を表示] > Contents > Eclipse >eclipse.ini
追記
lombok.jarファイルが、上図のようにEclipseディレクトリ直下に入ってないとeclipse.iniファイルに書き込んだだけではだめでした。
公式からダウンロードしてきても良いですが、今回はGradleでダウンロードしてきたのでプロジェクトのライブラリ内に入っています。
lombok.jarは単体でインストーラが起動するようになっているので、対象のEclipseを選択しましょう。
するとEclipseディレクトリに入ります。あとはeclipse.iniに追記したらOK