Почему Виноград хватает банку, о которой я не просил?

Я хочу написать простой скрипт Groovy, который использует Apache HttpClient 4.1, и, поскольку у меня нет его jar-файла, я хочу получить его с помощью Grapes. Все, что у меня есть в моем сценарии, это ..

@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.0')
import org.apache.http.impl.client.DefaultHttpClient;

Но когда я запускаю это, я получаю исключение ..

java.lang.RuntimeException: Error grabbing Grapes -- [download failed: commons-logging#commons-logging;1.1.1!commons-logging.jar]

Почему Grapes регистрирует общий журнал, когда я запрашивал только http-клиент? Если это связано с тем, что последнему нужен первый, то нужно ли мне явно захватывать все зависимые банки HTTP-клиента? Откуда мне вообще знать, что это такое? Есть ли способ сказать Грейпсу сделать это самостоятельно?


person AbuMariam    schedule 21.01.2016    source источник


Ответы (1)


Это происходит потому, что ведение журнала является транзитивной зависимостью, то есть зависимостью org.apache.httpcomponents: httpclient.

Вероятно, у вас возникла проблема, потому что в вашем локальном репозитории maven нет общего журнала и не известно, как (или не настроено) его искать.

person Michael Rutherfurd    schedule 21.01.2016
comment
Спасибо, Майк, так как я могу сказать Грейпсу, чтобы он смотрел за пределы моего локального репозитория maven в поисках банок, которые он там не находит? - person AbuMariam; 21.01.2016
comment
@AbuMariam: используйте GrapeResolver: docs.groovy-lang.org/latest/ html / documentation / grape.html - person Jayan; 21.01.2016