gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 03:33:11 25 4
gpt4 key购买 nike

我们有一个基于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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com