2015-03-05 2 views
6

Извинения за вопрос новичков, но как вы устанавливаете HTTPBuilder для Groovy?Установка HTTPBuilder для Groovy

Я добавил http-builder-0.7.jar, http-builder-0.7-source.jar и http-builder-0.7-javadoc.jar в GROOVY_HOME/lib.

Есть ли что-нибудь еще, что мне нужно? Веб-сайт HTTPBuilder не ясен.

код запуска от GroovyConsole:

import groovy.grape.Grape 

Grape.grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7') 

def http = new groovyx.net.http.HTTPBuilder('http://www.codehaus.org') 

Я получаю это в ответ:

groovy.lang.MissingMethodException: No signature of method: static groovy.grape.Grape.grab() is applicable for argument types: (java.lang.String, java.lang.String, java.lang.String) values: [org.codehaus.groovy.modules.http-builder, http-builder, 0.7] 
Possible solutions: grab(java.lang.String), grep(), grab(java.util.Map), grab(java.util.Map, [Ljava.util.Map;), wait(), dump() 

EDIT 2:

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7') 

def http = new groovyx.net.http.HTTPBuilder('http://www.codehaus.org') 

Ответ:

java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpRequestBase 

at ConsoleScript6.run(ConsoleScript6:4) 

Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpRequestBase 

... 1 more 
+0

Не копируйте его в папку lib. Это делает все, что вы почти невозможно воспроизвести. Почему бы не использовать подходящий инструмент построения, такой как gradle, и использовать построитель как зависимость? Или используйте аннотацию захвата, чтобы получить ее, если вы просто пишете скрипт –

+1

@tim_yates Я удалил их из папки lib. Я пытаюсь использовать Grape из GroovyConsole. Я отредактирую, чтобы показать вам, что я сделал. Я попытался запустить Grape.bat на своей машине, но он просто закрывается. –

+0

Вы пытались избавиться от своего импорта и заменить линию захвата на '@Grab (group = 'org.codehaus.groovy.modules.http-builder', module = 'http-builder', version = '0.7')' –

ответ

3

Следующий пример работает для меня из коробки:

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7') 

def http = new groovyx.net.http.HTTPBuilder('http://www.codehaus.org') 
println http 

Вы должны удалить любой из баночек зависимостей добавленных непосредственно GROOVY_HOME \ Lib. Вручную добавив банки, можно создать конфликты и вызвать эти типы ошибок. Проверьте, добавили ли вы вручную библиотеки HttpClient в библиотеку lib, удалите их и повторите попытку.

EDIT: При использовании IntelliJ я смог воспроизвести это поведение один раз. У меня уже была отдельная аннотация @Grab, добавленная в мой скрипт Groovy. Когда я добавил второй, он, похоже, не загружал и не импортировал новую библиотеку.

Прежде всего, если вы добавляете второй @Grab, вам нужно обернуть его в @Grapes аннотацию как следующий (моя первая ошибка):

@Grapes([ 
     @Grab(group='org.codehaus.gpars', module='gpars', version='1.2.1'), 
     @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7.1') 
]) 

После этого, я нашел решение здесь: Intellij IDEA not importing dependencies from @Grab in Groovy project , который объясняет, чем при использовании IntelliJ и вы столкнулись с этой проблемой, попробуйте поместить курсор рядом с @Grapes аннотацию и выбрав Alt + Enter затем выберите «захватить Артефакты» опция.

+0

не для меня несчастливо ... все еще копает в грязь. Пытался удалять локальные зависимости, определять пользовательский Grape conf, пробовать другие версии ... все равно не загружать (несмотря на то, что у меня есть в моем местном Grape repo Jar !!). Любая идея, пожалуйста? – Alex

+0

Intellij part - это то, что я искал! .. И как только у меня решены артефакты, просто импортированные с помощью 'import groovyx.net.http.HTTPBuilder' и HTTPBuilder, можно использовать как' def http = new HTTPBuilder ('http : //www.codehaus.org ') ' – OK999

+0

@Alex. Подход Alt-Enter не будет работать, если у вас есть какие-либо ошибки компиляции в классе/скрипте, который вы пытаетесь« захватить артефакты ». Временно закомментируйте любые ссылки на HTTPBuilder или другие строки, которые находятся в ошибке, и попробуйте параметр «Alt-Enter» -> «Grap the Artifacts» после. – pczeus

Смежные вопросы