如何解决Jenkins插件使用另一个插件中的类,而不是Maven依赖项
我试图通过删除其中一个插件来克服某些依赖差异,方法是删除对jackson2-api插件的依赖,而改用直接的jackson maven依赖。
是否有可能做类似的事情?因为它似乎无法正常工作。
BFA插件似乎仍然使用jackson2-api插件中的jackson类,而不是直接的maven依赖关系。 导致https://issues.jenkins-ci.org/browse/JENKINS-62214 在MongoJack内的导入中使用了错误的杰克逊版本,导致方法丢失:
java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.introspect.Annotated.getGenericType()Ljava/lang/reflect/Type;
at org.mongojack.internal.MongoAnnotationIntrospector.getTypeForAnnotated(MongoAnnotationIntrospector.java:81)
at org.mongojack.internal.MongoAnnotationIntrospector.findDeserializer(MongoAnnotationIntrospector.java:97)
Jenkins的classpath中对Jackson2-api插件的依赖性是否更高?
解决方法
无法直接回答您,但是运行mvn dependency:analyze
和mvn dependency:tree
应该会指导您。
analyze
报告:
[INFO] --- maven-dependency-plugin:3.1.1:analyze (default-cli) @ build-failure-analyzer ---
[WARNING] Used undeclared dependencies found:
[WARNING] com.fasterxml.jackson.core:jackson-annotations:jar:2.10.2:compile
[WARNING] com.fasterxml.jackson.core:jackson-databind:jar:2.10.2:compile
[WARNING] Unused declared dependencies found:
[WARNING] org.jenkins-ci.plugins:jackson2-api:jar:2.10.2:compile
还有dependency:tree
个报告(选择列表):
[WARNING] Using Maven 2 dependency tree to get verbose output,which may be inconsistent with actual Maven 3 resolution
[INFO] com.sonyericsson.jenkins.plugins.bfa:build-failure-analyzer:hpi:1.27.2-SNAPSHOT
[INFO] +- com.sonyericsson.hudson.plugins.gerrit:gerrit-trigger:jar:2.27.5:compile
...
[INFO] +- org.jenkins-ci.plugins:slack:jar:2.30:compile
[INFO] | +- (org.jenkins-ci.plugins:jackson2-api:jar:2.9.9.1:compile - omitted for conflict with 2.10.2)
...
[INFO] +- org.mongodb:mongo-java-driver:jar:3.8.2:compile
[INFO] +- org.mongojack:mongojack:jar:2.9.4:compile
[INFO] | +- org.mongodb:mongodb-driver:jar:3.8.0:compile
[INFO] | | +- org.mongodb:bson:jar:3.8.0:compile
[INFO] | | \- org.mongodb:mongodb-driver-core:jar:3.8.0:compile
[INFO] | | \- (org.mongodb:bson:jar:3.8.0:compile - omitted for duplicate)
[INFO] | +- de.undercouch:bson4jackson:jar:2.9.2:compile
[INFO] | | \- (com.fasterxml.jackson.core:jackson-core:jar:2.9.3:compile - omitted for conflict with 2.9.9)
[INFO] | +- javax.persistence:persistence-api:jar:1.0.2:compile
[INFO] | \- commons-io:commons-io:jar:2.6:compile
[INFO] +- org.jenkins-ci.plugins:jackson2-api:jar:2.10.2:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.2:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.2:compile
[INFO] | | \- (com.fasterxml.jackson.core:jackson-core:jar:2.10.2:compile - omitted for duplicate)
[INFO] | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.2:compile
[INFO] | | +- (com.fasterxml.jackson.core:jackson-annotations:jar:2.10.2:compile - omitted for duplicate)
[INFO] | | +- (com.fasterxml.jackson.core:jackson-core:jar:2.10.2:compile - omitted for duplicate)
[INFO] | | \- (com.fasterxml.jackson.core:jackson-databind:jar:2.10.2:compile - omitted for duplicate)
[INFO] | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.10.2:compile
[INFO] | | +- (com.fasterxml.jackson.core:jackson-core:jar:2.10.2:compile - omitted for duplicate)
[INFO] | | \- (com.fasterxml.jackson.core:jackson-databind:jar:2.10.2:compile - omitted for duplicate)
[INFO] | +- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.10.2:compile
[INFO] | | +- (com.fasterxml.jackson.core:jackson-core:jar:2.10.2:compile - omitted for duplicate)
[INFO] | | \- (com.fasterxml.jackson.core:jackson-databind:jar:2.10.2:compile - omitted for duplicate)
[INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.10.2:compile
[INFO] | \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.2:compile
[INFO] | +- (com.fasterxml.jackson.core:jackson-annotations:jar:2.10.2:compile - omitted for duplicate)
[INFO] | +- (com.fasterxml.jackson.core:jackson-core:jar:2.10.2:compile - omitted for duplicate)
[INFO] | +- (com.fasterxml.jackson.core:jackson-databind:jar:2.10.2:compile - omitted for duplicate)
[INFO] | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
[INFO] | | \- (jakarta.activation:jakarta.activation-api:jar:1.2.1:compile - omitted for duplicate)
[INFO] | \- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
因此,dependency resolution采取直接/声明的依赖关系将覆盖未声明/传递的依赖关系(并且在较低的#。#。#上较高)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。