Неразрешенные зависимости для общего кодека
Я пытаюсь получить библиотеку для API отчетов Google:
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 с jar-файлами commons-codec-1.5, несколькими xml-файлами ivy-1.5.xml и ivy-1.6.xml и ivydata-1.5.properties и ivydata-1.6.properties. Я также пытался удалить всю папку ivy-cache, но результат тот же.
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"
}
}
В моем проекте grails я решил это, удалив папку "commons-codec" из ivy-cache. Зависимость была загружена заново, и ошибка была устранена.