kapitanpattimura kapitanpattimura - 6 months ago 24
Java Question

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

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'
}


Thanks a lot in advance!

Answer

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