Gradle下载依赖错误

Posted

技术标签:

【中文标题】Gradle下载依赖错误【英文标题】:Gradle download dependency error 【发布时间】:2014-05-02 01:22:27 【问题描述】:

我正在尝试添加以下依赖项:

compile group: 'com.cedarsoft.commons', name:'test-utils', version:'5.0.9'

Gradle 下载了几个 jar,然后我收到以下错误:

POM relocation to an other version number is not fully supported in Gradle : xml-apis#xml-apis;2.0.2   relocated to xml-apis#xml-apis;1.0.b2.
Please update your dependency to directly use the correct version 'xml-apis#xml-apis;1.0.b2'.
Resolution will only pick dependencies of the relocated element.  Artifacts and other metadata will    be ignored.

任何想法为什么以及如何解决这个问题?

【问题讨论】:

【参考方案1】:
configurations.all 
    resolutionStrategy 
        force 'xml-apis:xml-apis:1.4.01'
    

或使用 1.0.b2。问题是 xml-apis 的 POM 将 2.0.2(如 khmarbaise 所写)重定向到同一组和人工制品,只有版本是 1.0.b2,这以某种方式欺骗了 Gradle(或底层 Ivy)解析机制。

感谢 Mark Petrovic Gradle Forum

【讨论】:

此时 gradle 论坛链接已断开 :(【参考方案2】:

如果您查看 Maven Central 中的工件并下载 pom 文件,您将得到:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>xml-apis</groupId>
  <artifactId>xml-apis</artifactId>
  <version>2.0.2</version>
  <distributionManagement>
  <relocation>
    <groupId>xml-apis</groupId>
    <artifactId>xml-apis</artifactId>
    <version>1.0.b2</version>
  </relocation>
  </distributionManagement>
</project>

这意味着工件可以在new coordinates 下找到,这意味着您需要使用新坐标才能使用该工件。我假设您没有仅通过传递依赖项直接使用该工件。这意味着您需要用新的工件坐标覆盖传递依赖。

【讨论】:

以上是关于Gradle下载依赖错误的主要内容,如果未能解决你的问题,请参考以下文章

Gradle离线如何缓存依赖项

Android Studio 2.3 gradle 错误

Gradle - 手动下载依赖、锁定版本和更新依赖

Android Gradle 插件Gradle 基础配置 ④ ( Gradle Wrapper 配置作用 | Gradle 下载的依赖库存放位置 )

Gradle 构建不下载依赖项

Gradle - 获取依赖项的 URL