哪个是适当的Gradle插件支持'提供'方法?

时间:2014-07-30 15:10:25

标签: java gradle build.gradle lombok

我目前正在尝试将Project Lombok帮助程序包含到我的Gradle项目中,但在build.gradle中跟随their instructions for Gradle时,我收到以下错误:

错误:(11,0)构建脚本错误,找不到支持的Gradle DSL方法:'provided()'!

可能的原因可能是:

  • 您正在使用不存在该方法的Gradle版本
  • 您没有应用提供方法的Gradle插件
  • 或构建脚本中存在错误

我当前的build.gradle文件:

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

2 个答案:

答案 0 :(得分:43)

从版本2.12开始,provided范围被称为compileOnly


旧答案:

提供范围可用于战争'插件(http://www.gradle.org/docs/current/userguide/war_plugin.html,providedCompile)如果您不想使用“战争”插件,还有一个关于'提供'的开放JIRA问题。范围http://issues.gradle.org/browse/GRADLE-784,建议的解决方法是创建自己的配置:

configurations {
   provided
}

并将其设置为与编译类路径一起使用:

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

答案 1 :(得分:0)

检查您的应用级草图文件。如果任何一行看起来像这样:

compile dependency.gson provided dependency.javaxAnnotation

像这样编辑:

compile dependency.gson 
provided dependency.javaxAnnotation

它应该有用。