provided スコープの指定
lombok 使うときは、依存スコープを provided
にします。
maven だと、こんな感じになります。
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.0</version> <scope>provided</scope> </dependency> </dependencies>
gradle 使う場合は java プラグインだと provided
の configurations は追加されないので、war プラグインで providedCompile
を指定するのが簡単ですね。
apply plugin: 'java' apply plugin: 'war' repositories { mavenCentral() } dependencies { providedCompile "org.projectlombok:lombok:1.16.0" testCompile("junit:junit") } task wrapper(type: Wrapper) { gradleVersion = '2.2.1' }
不要な war プラグインを導入したくない場合には、以下のように自前で provided
を定義する必要があります。
configurations { provided } sourceSets { main.compileClasspath += configurations.provided test.compileClasspath += configurations.provided test.runtimeClasspath += configurations.provided }
idea プラグインを使う場合モジュールの設定も追加してあげる必要があります。
apply plugin: 'java' apply plugin: 'idea' repositories { mavenCentral() } configurations { provided } sourceSets { main.compileClasspath += configurations.provided test.compileClasspath += configurations.provided test.runtimeClasspath += configurations.provided } idea { module { scopes.PROVIDED.plus += [configurations.provided] } } dependencies { provided "org.projectlombok:lombok:1.16.0" testCompile("junit:junit") } task wrapper(type: Wrapper) { gradleVersion = '2.2.1' }
以下のようにして、
gradle wrapper ./gradlew idea
idea から開いてあげれば完了です。
面倒な場合は、provided プラグインを使うのも良いかもしれません。
buildscript { repositories { maven { url 'http://repo.spring.io/plugins-release' } } dependencies { classpath 'org.springframework.build.gradle:propdeps-plugin:0.0.6' } } // ... configure(allprojects) { apply plugin: 'propdeps' apply plugin: 'propdeps-maven' apply plugin: 'propdeps-idea' apply plugin: 'propdeps-eclipse' } dependencies { provided "org.projectlombok:lombok:1.16.0" testCompile("junit:junit") }
Intellij で lombok プラグインを入れる
IDE では lombok プラグインないとやってられないので
設定画面から Browse repositories...
lombok プラグインを Install plugin して再起動
こんな感じで getter や setter が見えます。