我已经包含在我的build.gradle以下依赖性:如何从包含在build.gradle中的外部jar的传递依赖项中排除程序包?
testCompile group: 'com.xebialabs.restito', name: 'restito', version:'0.5.1'
但这个罐子其他依赖像球衣核心 - 1.18.3.jar也得到包括在内。
现在我想这件球衣罐子,但这样做也有一个包javax.ws.rs.core它包含了我的最新javax.ws.rs.core的版本冲突的build.gradle包括明确的类。
有没有什么办法可以从传递依赖中只排除一个特定的包而不是整个依赖。我是gradle的新手,所以如果使用不正确的术语,请纠正我。
当我运行下面的命令:
gradlew dependencies --configuration testCompile
它给了我下面的依赖关系树。只有相关部分如下所示
testCompile - Compile classpath for source set 'test'.
+--- org.apache.cxf:cxf-rt-frontend-jaxrs:3.0.3
| +--- org.apache.cxf:cxf-core:3.0.3 (*)
| +--- javax.ws.rs:javax.ws.rs-api:2.0.1
| +--- javax.annotation:javax.annotation-api:1.2
| \--- org.apache.cxf:cxf-rt-transports-http:3.0.3 (*)
+--- org.apache.cxf:cxf-rt-rs-service-description:3.0.0-milestone1
| \--- org.apache.cxf:cxf-rt-frontend-jaxrs:3.0.0-milestone1 -> 3.0.3 (*)
+--- org.codehaus.jackson:jackson-jaxrs:1.9.13
| +--- org.codehaus.jackson:jackson-core-asl:1.9.13
| \--- org.codehaus.jackson:jackson-mapper-asl:1.9.13
| \--- org.codehaus.jackson:jackson-core-asl:1.9.13
+--- org.codehaus.jackson:jackson-mapper-asl:1.9.12 -> 1.9.13 (*)
+--- com.fasterxml.jackson.core:jackson-databind:2.4.1.2
| +--- com.fasterxml.jackson.core:jackson-annotations:2.4.0
| \--- com.fasterxml.jackson.core:jackson-core:2.4.1.1
\--- com.xebialabs.restito:restito:0.5.1
+--- org.slf4j:slf4j-api:1.7.5 -> 1.7.7
+--- org.mockito:mockito-core:1.10.17
| +--- org.hamcrest:hamcrest-core:1.1 -> 1.3
| \--- org.objenesis:objenesis:2.1
+--- org.apache.mina:mina-core:2.0.4
| \--- org.slf4j:slf4j-api:1.6.1 -> 1.7.7
+--- org.glassfish.grizzly:grizzly-http-server:2.3.17
| \--- org.glassfish.grizzly:grizzly-http:2.3.17
| \--- org.glassfish.grizzly:grizzly-framework:2.3.17
+--- junit:junit:4.12
| \--- org.hamcrest:hamcrest-core:1.3
\--- com.sun.jersey:jersey-grizzly2:1.18.3
+--- org.glassfish.grizzly:grizzly-http:2.2.16 -> 2.3.17 (*)
+--- org.glassfish.grizzly:grizzly-http-server:2.2.16 -> 2.3.17 (*)
\--- com.sun.jersey:jersey-server:1.18.3
\--- com.sun.jersey:jersey-core:1.18.3
(*) - dependencies omitted (listed previously)
现在类Response
在javax.ws.rs:javax.ws.rs-api:2.0.1
是包javax.ws.rs.core
下。类似的还有另一种Response
类别com.sun.jersey:jersey-core:1.18.3
in包javax.ws.rs.core
。但后者包含的早期版本没有在rs-api 2.0中引入的readEntity()
方法。在我的项目中对Response
的依赖关系会始终解析为早期版本。
谢谢@Amnon。我尝试了类似的解决方案,但没有工作。在我的问题中,泽西核心具有javax.ws.rs.core的内部包结构,并且类似地,RS-api2.0具有相同的结构。 javax.ws.rs.core。我希望我的回应稍后再做。 –
查看MavenCentral中的pom文件我不确定是否发现了您想要排除的确切瓶子。你可以添加你的问题依赖关系树?对于testCompile配置,您可以简单地运行'gradlew dependencies --configuration testCompile',粘贴它的输出并标记您要跳过下载的工件。 –
我已更新我的问题,并提供更多详细信息。谢谢 –