lombok を gradlw with Intellij で使う

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...

f:id:Naotsugu:20150129010026p:plain

lombok プラグインを Install plugin して再起動

f:id:Naotsugu:20150129005854p:plain

こんな感じで getter や setter が見えます。

f:id:Naotsugu:20150129005930p:plain