公共编解码器的无人解决的依赖关系

时间:2013-11-03 09:45:36

标签: grails ivy apache-commons-codec google-reporting-api

我正在尝试检索Google Reporting API的库:

compile 'com.google.apis:google-api-services-analytics:v3-rev74-1.17.0-rc'

但我得到了一个未解决的依赖项错误,我不知道如何处理它:

:: commons-codec#commons-codec;1.6: configuration not found in commons-codec#commons-codec;1.6: 'master'. It was required from org.apache.httpcomponents#httpclient;4.0.1 compile

我检查了.grails \ ivy-cache \文件夹,并且有一个commons-codec文件夹,其中包含jars of commons-codec-1.5,少数xml文件ivy-1.5.xml和ivy-1.6.xml以及ivydata- 1.5.properties和ivydata-1.6.properties。我也试图删除整个ivy-cache文件夹,但结果是一样的。

3 个答案:

答案 0 :(得分:5)

在我的grails项目中,我通过从常春藤缓存中删除文件夹“commons-codec”来解决它。依赖关系是新加载的,然后解决了错误。

答案 1 :(得分:3)

在写完我的问题后,我找到了答案。将“compile”范围更改为“build”应该可以解决错误:

build 'com.google.apis:google-api-services-analytics:v3-rev74-1.17.0-rc'

实际上这解决了我之前的问题,但提出了另一个问题:)“构建”范围仅在编译时包含库,但不在运行时!因此,部署到Tomcat时,我没有google-api-services-analytics可用。我的最终解决方案是:

dependencies {
        def googleLibVersion = "1.17.0-rc"
        compile("com.google.apis:google-api-services-analytics:v3-rev74-${googleLibVersion}") {
            excludes "commons-codec"
        }
        compile("com.google.http-client:google-http-client-jackson2:${googleLibVersion}") {
            excludes "commons-codec"
        }
}

答案 2 :(得分:0)

删除.ivy2 / cache /帮我解决依赖关系。