无法为参数[{group = javax.servlet,name = javax.servlet-api,version = 3.1.0}]找到方法provided()

时间:2018-01-23 12:18:29

标签: gradle build.gradle

我收到以下错误:

  

无法为参数找到方法provided()[{group = javax.servlet,   name = javax.servlet-api,version = 3.1.0}]

我尝试了几种不同的方法,发现有类似问题的人却无济于事。我添加了以下依赖项,但

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "http://repo.maven.apache.org/maven2" }
    provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'

如果我删除了javax.servlet我又回到了原始错误:

Could not find method providedCompile() for arguments [{group=javax.servlet, name=javax.servlet-api, version=3.1.0}]

更新1:

添加后

新错误:

dependencies {
    compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version:'3.1.0'
}

错误

> Could not find javax.servlet:servlet-api:3.1.0.
  Searched in the following locations:
      http://repo.maven.apache.org/maven2/javax/servlet/servlet-api/3.1.0/servlet-api-3.1.0.pom
      http://repo.maven.apache.org/maven2/javax/servlet/servlet-api/3.1.0/servlet-api-3.1.0.jar
  Required by:
      project :

更新:

我补充说:

allProjects {

    apply plugin: 'maven'
    apply plugin: 'java'
    apply plugin: 'idea'
    apply plugin: 'eclipse'

    jcenter()
    mavenCentral()

    version = '0.0.1-SNAPSHOT'
    group = 'com.lidl.digital.ecom.ratings'

    dependencies {
        compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version:'3.1.0'
    }
}

现在错误是:

  
      
  • 出了什么问题:评估根项目'product-rating-parent'时出现问题。      
        

    无法为org.gradle.api.internal.initialization.DefaultScriptHandler类型的对象设置未知属性'sourceCompatibility'。

      
  •   

我在修复此发布的问题之前已经看到此错误,所以我不确定它是否已修复。当我将鼠标悬停在gradle文件中的任何内容时,它会显示cannot resolve 'whatever I hover over'

2 个答案:

答案 0 :(得分:2)

看来,您已将依赖项添加到错误的位置。依赖性在dependencies块内声明如下

dependencies {
    provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
}

但在你的情况下,它是在repositories内声明的。

答案 1 :(得分:2)

您报告添加的内容与您的例外之间存在差异:

  

依赖{       compileOnly group:'javax.servlet',name:'javax.servlet-api',version:'3.1.0'     }

以上是正确的,exists in Maven Central

但是,您的错误:

  
    

找不到javax.servlet:servlet-api:3.1.0。       在以下位置搜索:           http://repo.maven.apache.org/maven2/javax/servlet/servlet-api/3.1.0/servlet-api-3.1.0.pom           http://repo.maven.apache.org/maven2/javax/servlet/servlet-api/3.1.0/servlet-api-3.1.0.jar       要求:           项目:

  

它清楚地表明项目中某处的拼写错误,其中依赖项模块名称缺少javax.前面的servlet-api部分。

所以你必须有一些代码:

dependencies {
  compileOnly group: 'javax.servlet', name: 'servlet-api', version:'3.1.0'
}

请注意name属性中缺少javax.