【问题标题】:Gradle, 'url' cannot be applied to (java.lang.String)Gradle,“url”不能应用于(java.lang.String)
【发布时间】:2018-07-17 12:41:15
【问题描述】:

一段时间以来,我在任何maven { url "whatever" } 上都收到此警告:

Here 遇到问题的示例项目

拦截器也不重要,但有点烦人

有人知道它是从哪里来的吗?

规格:

  • 想法 IU 181.3263.15
  • JRE 1.8.0_152
  • kotlin 1.2.21
  • gradle 4.4.1
  • Win 7 x64

【问题讨论】:

    标签: gradle intellij-idea build.gradle


    【解决方案1】:

    要让 IntelliJ IDEA 停止抱怨,您可以使用:

    maven {
        url = 'http://myrepo'
    }
    

    我认为这是setUrl('http://myrepo') 的 Groovy 快捷方式。

    【讨论】:

      【解决方案2】:

      您的 IDE 正在分析 Gradle DSL。使用完全扩展的语法,您的代码如下所示:

      project.dependencies({(RepositoryHandler handler) -> {
         handler.maven({(MavenArtifactRepository repository) -> {
             repository.setUrl("https://...");
         });
      };
      

      如果你查看 Gradle API,你可以看到 MavenArtifactRepository 有两个方法:

      void    setUrl(Object url)
      void    setUrl(URI url)
      

      所以 IDE 说您应该传递 ObjectURI。如果您使用setUri(...),烦人的 IDE 警告应该会消失。

      【讨论】:

      • 我不知道为什么,但现在它抱怨url uri("https://dl.bintray.com/kotlin/kotlin-eap")。这虽然有效setUrl("https://dl.bintray.com/kotlin/kotlin-eap")
      • 因为 groovy 是一种动态语言,IDE 通常只能猜测输入的正确性。我不能说为什么 setUrl() 在您的情况下有效,但 url 无效。很高兴它现在仍然有效。
      猜你喜欢
      • 2014-11-23
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      相关资源
      最近更新 更多