Java 哪个是支持';提供';方法?

Java 哪个是支持';提供';方法?,java,gradle,build.gradle,lombok,Java,Gradle,Build.gradle,Lombok,我目前正在尝试将Project Lombok helper包含到我的Gradle项目中,但在我的build.Gradle中执行以下操作时,我遇到以下错误: 错误:(11,0)生成脚本错误,找到不受支持的Gradle DSL方法:“提供了() 可能的原因可能是: 在缺少该方法的情况下,您使用的是Gradle版本 您没有应用提供该方法的Gradle插件 或者构建脚本中存在错误 我当前的build.gradle文件: apply plugin: 'java' sourceCompatibilit

我目前正在尝试将Project Lombok helper包含到我的Gradle项目中,但在我的build.Gradle中执行以下操作时,我遇到以下错误:

错误:(11,0)生成脚本错误,找到不受支持的Gradle DSL方法:“提供了()

可能的原因可能是:

  • 在缺少该方法的情况下,您使用的是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.12版开始,调用提供的范围


旧答案:

提供的范围在“war”插件(,providedCompile)中可用如果您不想使用“war”插件,还存在一个关于“提供的”范围的公开JIRA问题,建议的解决方法是创建您自己的配置:

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

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

检查你的应用程序级渐变文件。如果任何一行看起来像这样:

compile dependency.gson provided dependency.javaxAnnotation
compile dependency.gson 
provided dependency.javaxAnnotation
按如下方式编辑:

compile dependency.gson provided dependency.javaxAnnotation
compile dependency.gson 
provided dependency.javaxAnnotation

它应该可以工作。

FWIW我刚刚添加了我安装的lombok.jar作为编译依赖项。这不完全一样,但它很管用,而我却无知到可以享受它你好@maaartinus也非常感谢你的评论。这似乎解决了这个问题——正确地构建了脚本,但无法编译,同时无法解析Lombok项目的注释符号。嘿@endriu_l谢谢你的回答,我尝试在我的另一个插件下面加上:“apply plugin:‘war’(不带双引号OFC),但仍然是同样的问题。我应该添加其他内容吗?@kapitanpattimura,在“war”插件中,这个范围称为“providedCompile”,所以只需将“provided”更改为“providedCompile”,一切都应该正常