如何从grails的类路径中获取4.0版本的httpclient



我正在使用Grails 1.3.7,不知道如何从我的类路径中获取4.0版本的httpclient(支持4.1版本)。我需要这样做,因为插件依赖于4.1中使用的无参数构造器。

运行grails的'dependency-report',它看起来应该是在运行时使用的版本。如果我把事情打包成一场战争。然而,由于某种原因,当使用run-app时,4.0版本仍然在类路径上结束。请注意,它在编译时(正确地)用于一些grails内部,并且不知怎的它仍然在我的类路径中结束。

->我能准确地知道4.0 .jar来自哪里,并在我的类路径上结束,并阻止它发生(通过run-app运行时所有的.jar放在哪里?)

->我可以告诉grails用4.1而不是4.0来编译它的内部(在本例中是由org.codehaus.groovy.modules编译的http-builder)吗?http-builder模块?)有争议的不是最好的解决方案,但我会接受它,因为每次我想测试它时都将所有内容打包到。war中是不愉快的。

我刚刚做了同样的事情,将以下内容添加到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'
} 

欢呼李

您可以通过在BuildConfig.groovy中添加排除行来从类路径中获取httpclient 4.0。通过使用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。

相关内容

  • 没有找到相关文章

最新更新