1

我想写一个简单的使用Apache HttpClient 4.1的Groovy脚本,由于我没有它的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] 

为什么葡萄越来越通用日志的时候,我只问http客户端?如果是因为后者需要前者,那么我是否需要自己明确抓取所有依赖的http客户端jar?我怎么会知道他们是什么?有没有办法告诉葡萄自己做这件事?

回答

5

发生这种情况的原因是commons-logging是一个传递依赖项,即org.apache.httpcomponents的依赖项:httpclient。

你大概有问题,因为你的本地maven回购没有commons-logging,也不知道如何(或没有配置)来查找它。

+0

感谢迈克,那么我该如何告诉葡萄超越我的本地maven回购库,以找到它在那里找不到的罐子? – AbuMariam

+0

@AbuMariam:使用GrapeResolver:http://docs.groovy-lang.org/latest/html/documentation/grape.html – Jayan