Which is the proper Gradle plugin to support 'provided' method?

kapitanpattimura picture kapitanpattimura · Jul 30, 2014 · Viewed 13.4k times · Source

I'm currently trying to include Project Lombok helper into my Gradle project, but while following their instructions for Gradle within my build.gradle, I'm getting the following error:

Error:(11, 0) Build script error, unsupported Gradle DSL method found: 'provided()'!

Possible causes could be:

  • you are using Gradle version where the method is absent
  • you didn't apply Gradle plugin which provides the method
  • or there is a mistake in a build script

My current build.gradle file:

apply plugin: 'java'

sourceCompatibility = 1.5
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    provided "org.projectlombok:lombok:1.14.4"
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

Answer

endriu_l picture endriu_l · Jul 30, 2014

As of release 2.12, provided scope is called compileOnly


Old answer:

Provided scope is available in 'war' plugin (http://www.gradle.org/docs/current/userguide/war_plugin.html , providedCompile ) If You don't want to use the 'war' plugin, there is also an opened JIRA issue regarding 'provided' scope http://issues.gradle.org/browse/GRADLE-784 , suggested workaround is to create Your own cofiguration:

configurations {
   provided
}

and set it to be used with your compilation classpath:

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