2015-03-05 21 views
6

Các lời xin lỗi cho câu hỏi newbie, nhưng làm thế nào để bạn cài đặt HTTPBuilder cho Groovy?Cài đặt HTTPBuilder cho Groovy

Tôi đã thêm http-builder-0.7.jar, http-builder-0.7-source.jar và http-builder-0.7-javadoc.jar vào GROOVY_HOME/lib.

Tôi còn cần phải làm gì khác không? Trang web HTTPBuilder không rõ ràng.

Mã chạy từ 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') 

tôi có được điều này để đáp ứng:

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') 

đáp ứng:

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

Không sao chép thư mục vào thư mục lib. Nó làm cho bất cứ điều gì bạn làm hầu như không thể tái sản xuất. Tại sao không sử dụng một công cụ xây dựng thích hợp như gradle, và sử dụng các builder như là một phụ thuộc? Hoặc sử dụng chú thích lấy để tìm nạp nó nếu bạn chỉ đang viết một tập lệnh –

+1

@tim_yates Tôi đã xóa chúng khỏi thư mục lib. Tôi đã cố gắng sử dụng Grape từ GroovyConsole. Tôi sẽ chỉnh sửa để cho bạn thấy những gì tôi đã làm. Tôi đã cố gắng để chạy Grape.bat trên máy tính của tôi nhưng nó chỉ đóng cửa. –

+0

Bạn đã thử loại bỏ quá trình nhập và thay thế dòng lấy bằng '@Grab (nhóm = 'org.codehaus.groovy.modules.http-builder', module = 'http-builder', version = '0.7')' –

Trả lời

3

Ví dụ sau đây làm việc cho tôi ra khỏi hộp:

@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 

Bạn cần phải loại bỏ bất kỳ lọ phụ thuộc bạn thêm trực tiếp vào GROOVY_HOME \ lib. Thêm thủ công các lọ ở đó có thể tạo xung đột và gây ra các loại lỗi này. Kiểm tra xem liệu bạn đã thêm các thư viện HttpClient vào thư viện theo cách thủ công chưa, cũng loại bỏ chúng và thử lại.

EDIT: Khi sử dụng IntelliJ, tôi đã có thể tái tạo hành vi này một lần. Tôi đã có một chú thích @Grab được thêm vào tập lệnh Groovy của tôi. Khi tôi thêm một giây, có vẻ như nó không tải xuống hoặc nhập thư viện mới.

Trước hết, nếu bạn thêm một giây @Grab, bạn cần phải quấn nó trong @Grapes chú thích như sau (sai lầm đầu tiên của tôi):

@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') 
]) 

Sau đó, tôi tìm thấy giải pháp của tôi ở đây: Intellij IDEA not importing dependencies from @Grab in Groovy project , điều này giải thích hơn khi sử dụng IntelliJ và bạn gặp phải vấn đề này, hãy thử đặt con trỏ của bạn bên cạnh @Grapes chú thích và chọn Alt + Enter sau đó chọn 'Grab các Artifacts' tùy chọn.

+0

không phải cho tôi không may ... vẫn đào sâu. Cố gắng để xóa phụ thuộc địa phương, xác định tùy chỉnh Grape conf, đã thử các phiên bản khác ... vẫn không tải xuống (mặc dù thực tế tôi có trong Reppe địa phương của tôi repo Jar !!). Bất kỳ ý tưởng xin vui lòng? – Alex

+0

Intellij phần là những gì tôi đã tìm kiếm! Và một khi tôi có các đồ tạo tác được giải quyết, chỉ cần nhập khẩu với 'import groovyx.net.http.HTTPBuilder' và HTTPBuilder, có sẵn để sử dụng như' def http = new HTTPBuilder ('http : //www.codehaus.org ') ' – OK999

+0

@Alex Cách tiếp cận Alt-Enter sẽ không hoạt động nếu bạn có bất kỳ lỗi biên dịch nào trong lớp/tập lệnh mà bạn đang cố gắng' Lấy các đồ tạo tác 'cho. Tạm thời nhận xét bất kỳ tham chiếu nào đến HTTPBuilder hoặc các dòng khác có lỗi và thử tùy chọn 'Alt-Enter' -> 'Grap the Artifacts' sau đó. – pczeus