7

Grails 1.3.7 を使用していますが、クラスパスから httpclient のバージョン 4.0 を (4.1 を優先して) 取得する方法がわかりません。プラグインが依存する 4.1 で使用される引数なしのコンストラクターのため、これを行う必要があります。

grails 'dependency-report' を実行すると、実行時に 4.1 を使用する必要があるようです。そして、私が物事を.warにパッケージ化すると、それはそうです。ただし、何らかの理由で run-app を使用すると、バージョン 4.0 は依然としてクラスパスで終了します。いくつかの grails 内部のコンパイル時に (正しく) 使用されていることに注意してください。

-> その 4.0 .jar がどこから来て、クラスパスで終わるかを正確に把握して、それが起こらないようにすることはできますか?

-> grails の内部を 4.0 ではなく 4.1 でコンパイルするように指示できますか (この場合、org.codehaus.groovy.modules.http-builder モジュールによる http-builder ですか?) 、テストするたびにすべてを.warにパッケージ化するのは快適ではない.

助けていただければ幸いです。

4

2 に答える 2

7

私はちょうど同じことを経験しました.BuildConfig.groovyに以下を追加してください.

dependencies {        
        build 'org.apache.httpcomponents:httpcore:4.1.2' 
        build 'org.apache.httpcomponents:httpclient:4.1.2' 
        runtime 'org.apache.httpcomponents:httpcore:4.1.2'
        runtime 'org.apache.httpcomponents:httpclient:4.1.2'
} 

乾杯

リー

于 2011-11-04T00:06:46.117 に答える
1

に excludes 行を追加することで、クラスパスから httpclient 4.0 を取得できますBuildConfig.groovy。コマンドを使用して、依存関係として宣言しているプラ​​グインを特定しますgrails dependency-report

含まれているものを見つけたら、 のプラグイン セクションで除外できますBuildConfig.groovy。例:

plugins {
    compile ':other-plugin:1.0.0' // other-plugin depends on httpclient 4.1
    compile(':aws:1.2.12.2') { // aws plugin depends on httpclient:3.1
        excludes 'httpclient'
    }
}

httpclient 4.1 の引数なしコンストラクターに依存するプラグインは、それを依存関係として宣言する必要があります。そうでない場合は、プラグインの作成者に問題を開く必要があります。これを回避するには、leebutts が上記で説明したように、依存関係セクションに httpclient 4.1 をリストすることができます。

于 2013-11-02T17:06:57.180 に答える