gradle - 使用Gradle运行测试时如何排除jersey 1.x依赖关系

标签 gradle jersey jersey-2.0 jersey-client netflix-eureka

我们有一个基于Netflix的Eureka的Web服务项目,它依赖于Jersey客户端1.x。

我们的项目使用gradle,并且在项目中进行了src,单元,集成和功能测试。对于我们的功能测试,我们在testCompile gradle部分中导入了一个jar,该jar包装了Jersey客户端以将请求发送到Web服务。

现在我的问题是如何在testCompile中忽略netflix Jersey客户端依赖性,以便可以将新的Jersey 2.x客户端用于功能测试?

下面的构建脚本:

主要服务构建脚本摘录:

dependencies {
  compile 'com.netflix.eureka:eureka-client:1.1.97'
  compile 'com.sun.jersey:jersey-bundle:1.18'

  testCompile 'some.domain:service-test-client:1.0.1'    
}

服务测试客户相关部分:
dependencies {
  compile 'org.glassfish.jersey.core:jersey-client:2.19'
  compile 'org.glassfish.jersey.connectors:jeresey-apache-connector:2.19'
}

来自github的Eureka Client gradle脚本的相关部分:
ext {
    githubProjectName = 'eureka'
    awsVersion='1.9.3'
    servletVersion='2.5'
    jerseyVersion='1.11'
    governatorVersion='1.3.3'
    archaiusVersion='0.6.5'
    blitzVersion='1.34'
    mockitoVersion='1.9.5'
    junit_version='4.10'
    mockserverVersion='3.9.2'
    jetty_version='7.2.0.v20101020'
}

dependencies {
  compile "com.sun.jersey:jersey-core:$jerseyVersion"
  compile "com.sun.jersey:jersey-client:$jerseyVersion"
  compile 'com.sun.jersey.contribs:jersey-apache-client4:1.11'
  compile 'org.apache.httpcomponents:httpclient:4.2.1'

}

使用上述设置,我得到的方法未发现错误,因为在测试运行时,某些jersey 1.x类的优先级高于随test-client jar引入的类。

最佳答案

您可以使用gradle依赖项监视来找出带来jersey的库。

./gradlew dependencies

您可以将其传送到文件中,然后使用less找出谁带来了jersey 1. *。

然后,将其从特定对象中排除,然后编译自己的:
compile("com.example.library:artifactId:x.y.z"){
   exclude group:'org.glassfish.jersey', module:jersey-common
}

compile('org.glassfish.jersey.core:jersey-common:2.4.1')

关于gradle - 使用Gradle运行测试时如何排除jersey 1.x依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174505/

相关文章:

android - 向 Gradle 文件添加新依赖项时出错?

jdbc - DriverManager 在 gradle 自定义插件的任务中看不到依赖项

java - Jersey 依赖冲突

java - Jersey 2.0 - Glassfish 4 Actor 异常

java - Gradle 使用最新版本的 TestNG 而不是声明的版本

gradle - 如何使用 gradle kotlin-dsl 添加新的源集

java - 使用 Jersey 制作 favicon.ico

java - 在 Json 中显示零值

java - @Path 和正则表达式 (Jersey/REST)

java - Jersey 客户端的 URL 编码问题