1. エラー内容

gradle lombokを下記のように providedで、dependenciesに追加したところ、 エラーが発生しました。

    Could not find method provided() for arguments

    apply plugin: 'java'

    dependencies {
        // Lombok
        provided 'org.projectlombok:lombok:1.16.8'
    }
stackoverflow記載がありましたが、
java pluginにはどうもprovidedスコープはなく、 war pluginの場合、有効とのこと。

2. 解決方法

war plugin有効化でも解決できそうですが、

    apply plugin: 'war' 

warにすることはないため、以下を追記して解決しました。

    configurations {
       provided
    }
    // and set it to be used with your compilation classpath:

    sourceSets {
        main {
            compileClasspath += configurations.provided 
        }
    }

Lombok 使い方メモ にも上記の記述が書いてありました。
gradle的に常識的な…ですかね?

3. 解決方法 追記 (2017/07/17)

以下、Stack Overflow の記事で記載されていますが、
Gradle 2.12 からは、コンパイルのみの依存関係をcopmpileOnly定義できるようになったみたいです。
gradle - providedCompile without war plugin - Stack Overflow

以下のような記述ができます。

dependencies {
    compileOnly 'javax.servlet:servlet-api:2.5'
}

以上です。

コメント