Gradle 7中模块排除woodstox-core-asl依赖无效求助
Gradle 7中排除间接引入的woodstox-core-asl依赖问题
问题场景
我在使用Gradle 7(Groovy语法)的模块build.gradle中,尝试通过以下配置排除org.codehaus.woodstox:woodstox-core-asl依赖:
implementation("org.apache.chemistry.opencmis:chemistry-opencmis-client-impl") { exclude group: 'org.codehaus.woodstox', module: 'woodstox-core-asl' }
但查看依赖树后发现,该依赖仍通过org.apache.neethi:neethi间接引入,相关依赖链如下:
+--- org.apache.chemistry.opencmis:chemistry-opencmis-client-impl -> 1.1.0 | ... | | | | | +--- org.apache.cxf:cxf-rt-frontend-jaxws:3.0.12 -> 3.4.2 | ... | | | | | | \--- org.apache.cxf:cxf-rt-ws-addr:3.4.2 | | | | | | ... | | | | | | \--- org.apache.cxf:cxf-rt-ws-policy:3.4.2 | | | | | | ... | | | | | | \--- org.apache.neethi:neethi:3.1.1 | | | | | | \--- org.codehaus.woodstox:woodstox-core-asl:4.4.1
解决方法
1. 全局排除依赖
如果确认项目全程不需要woodstox-core-asl,可以直接在所有配置中全局排除该依赖,覆盖所有引入路径:
configurations.all { exclude group: 'org.codehaus.woodstox', module: 'woodstox-core-asl' }
2. 精准定位依赖链排除
如果只想针对特定依赖链排除,可以在neethi的上层依赖(如cxf-rt-ws-policy)中添加排除规则:
implementation("org.apache.cxf:cxf-rt-ws-policy") { exclude group: 'org.codehaus.woodstox', module: 'woodstox-core-asl' }
或者直接针对neethi本身排除:
implementation("org.apache.neethi:neethi") { exclude group: 'org.codehaus.woodstox', module: 'woodstox-core-asl' }
Gradle会自动将排除规则应用到该依赖的所有间接引入场景。
3. 确认所有引入路径
执行以下命令查看完整依赖树,排查是否还有其他未覆盖的引入路径:
./gradlew dependencies
内容的提问来源于stack exchange,提问作者terrinizer
相关产品推荐
相关产品推荐

