初心者の質問についてお詫びしますが、Groovy用のHTTPBuilderをどのようにインストールしますか?
Http-builder-0.7.jar、http-builder-0.7-source.jar、およびhttp-builder-0.7-javadoc.jarをGROOVY_HOME/libに追加しました。
他に何かする必要がありますか? HTTPBuilderのWebサイトは明確ではありません。
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()
編集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
次の例は、箱から出してすぐに機能します。
@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に直接追加した依存関係jarをすべて削除する必要があります。そこに手動でjarを追加すると、競合が発生し、これらのタイプのエラーが発生する可能性があります。 HttpClientライブラリを手動でライブラリに追加したかどうかを確認し、それらも削除して、再試行してください。
EDIT:IntelliJを使用しているとき、私はこの動作を一度再現することができました。 Groovyスクリプトにすでに1つの@Grab
アノテーションが追加されています。秒を追加したとき、新しいライブラリをダウンロードまたはインポートしていないようでした。
まず、2番目の@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 Groovyプロジェクトの@Grabから依存関係をインポートしていません@Grapes
注釈の横にカーソルを置き、Alt + Enterを選択してから、 'アーティファクトを取得する'オプション。