build.gradleで
apply plugin: 'war'
等としていると、dependenciesprovidedCompileが使えますが、例えば
apply plugin: 'java'
だけだとprovidedCompileは使えません。そこで以下のようにすれば使えるようになります。


configurations {
    providedCompile
}

sourceSets {
    main.compileClasspath += configurations.providedCompile
    test.compileClasspath += configurations.providedCompile
    test.runtimeClasspath += configurations.providedCompile
}

ただし、マルチプロジェクト等でmasterに上記設定をしてサブプロジェクトで
apply plugin: 'war'
としていた場合、すでにprovidedCompileを登録しているため、エラーが発生します。
そのため、以下のようにすればエラーが無くなります。が、これでいいんだろうか?


sourceSets {
    main.compileClasspath -= configurations.providedCompile
    test.compileClasspath -= configurations.providedCompile
    test.runtimeClasspath -= configurations.providedCompile
}

configurations.remove(configurations.providedCompile)

apply plugin: 'war'

ようは初期状態に戻してあとはwarプラグインに任せましょうってことで。