Nih*_* G. 9 gradle build.gradle
我在build.gradle中包含了以下依赖项:
testCompile group: 'com.xebialabs.restito', name: 'restito', version:'0.5.1'
Run Code Online (Sandbox Code Playgroud)
但是对于这个jar,其他依赖项如jersey-core-1.18.3.jar也包括在内.
现在我想要这个jersey jar但是它还有一个包javax.ws.rs.core,其中包含与我在build.gradle中明确包含的最新版本的javax.ws.rs.core冲突的类.
有什么办法可以只从传递依赖中排除特定的包而不是整个依赖.我是一个新手,所以如果使用了不正确的术语,请纠正我.
当我运行以下命令时:
gradlew dependencies --configuration testCompile
Run Code Online (Sandbox Code Playgroud)
它给了我以下依赖树.此处仅显示相关部分
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)
Run Code Online (Sandbox Code Playgroud)
现在课程Response在javax.ws.rs:javax.ws.rs-api:2.0.1包下javax.ws.rs.core.同样,包中还有另一个Response类.但后者包含早期版本,没有在rs-api 2.0中引入的方法.我的项目中的依赖项总是被解析为早期版本.com.sun.jersey:jersey-core:1.18.3javax.ws.rs.corereadEntity()Response
Amn*_*hot 13
引用gradle用户指南部分关于排除传递依赖关系:
您可以通过配置或依赖项排除传递依赖关系:
例50.14
Run Code Online (Sandbox Code Playgroud)configurations { compile.exclude module: 'commons' all*.exclude group: 'org.gradle.test.excludes', module: 'reports' } dependencies { compile("org.gradle.test.excludes:api:1.0") { exclude module: 'shared' } }
回到您的情况,您可以简单地采用上述方法之一,并将示例中的模块替换为您要排除的模块,例如
configurations {
testCompile.exclude group: 'javax.ws.rs', module: 'jsr311-api'
}
Run Code Online (Sandbox Code Playgroud)
更新(根据提供的其他详细信息)
您需要做的是在脚本中添加以下行
configurations {
testCompile.exclude group: 'com.sun.jersey', module: 'jersey-core'
}
Run Code Online (Sandbox Code Playgroud)
考虑以下最小build.gradle脚本:
apply plugin:'java'
repositories {
mavenCentral()
}
configurations {
// Excluding com.sun.jersey:jersey-core:1.18.3, option #1:
// compile.exclude group: 'com.sun.jersey', module: 'jersey-core'
}
dependencies {
compile "org.apache.cxf:cxf-rt-frontend-jaxrs:3.0.3"
compile ("com.sun.jersey:jersey-grizzly2:1.18.3") {
// Excluding com.sun.jersey:jersey-core:1.18.3, option #2:
// exclude group: 'com.sun.jersey', module: 'jersey-core'
}
}
Run Code Online (Sandbox Code Playgroud)
现在,上面的文件正在运行,gradlew dependencies --configuration testCompile你将获得下一个依赖树:
+--- org.apache.cxf:cxf-rt-frontend-jaxrs:3.0.3
| +--- org.apache.cxf:cxf-core:3.0.3
| | +--- org.codehaus.woodstox:woodstox-core-asl:4.4.1
| | | \--- org.codehaus.woodstox:stax2-api:3.1.4
| | \--- org.apache.ws.xmlschema:xmlschema-core:2.1.0
| +--- 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-core:3.0.3 (*)
\--- com.sun.jersey:jersey-grizzly2:1.18.3
+--- org.glassfish.grizzly:grizzly-http:2.2.16
| \--- org.glassfish.grizzly:grizzly-framework:2.2.16
+--- org.glassfish.grizzly:grizzly-http-server:2.2.16
| +--- org.glassfish.grizzly:grizzly-http:2.2.16 (*)
| \--- org.glassfish.grizzly:grizzly-rcm:2.2.16
| \--- org.glassfish.grizzly:grizzly-framework:2.2.16
\--- com.sun.jersey:jersey-server:1.18.3
\--- com.sun.jersey:jersey-core:1.18.3
Run Code Online (Sandbox Code Playgroud)
请注意,它com.sun.jersey:jersey-core:1.18.3被列为传递依赖项.现在,取消注释任一排除选项并重新运行相同的命令,您将获得包含此模块的以下输出:
+--- org.apache.cxf:cxf-rt-frontend-jaxrs:3.0.3
| +--- org.apache.cxf:cxf-core:3.0.3
| | +--- org.codehaus.woodstox:woodstox-core-asl:4.4.1
| | | \--- org.codehaus.woodstox:stax2-api:3.1.4
| | \--- org.apache.ws.xmlschema:xmlschema-core:2.1.0
| +--- 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-core:3.0.3 (*)
\--- com.sun.jersey:jersey-grizzly2:1.18.3
+--- org.glassfish.grizzly:grizzly-http:2.2.16
| \--- org.glassfish.grizzly:grizzly-framework:2.2.16
+--- org.glassfish.grizzly:grizzly-http-server:2.2.16
| +--- org.glassfish.grizzly:grizzly-http:2.2.16 (*)
| \--- org.glassfish.grizzly:grizzly-rcm:2.2.16
| \--- org.glassfish.grizzly:grizzly-framework:2.2.16
\--- com.sun.jersey:jersey-server:1.18.3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9801 次 |
| 最近记录: |