我正试图通过其中一个插件来克服一些依赖性差异,方法是删除对jackson2api插件的依赖,转而使用直接的jackson-maven依赖。
有可能做这样的事吗?因为它似乎不太好用。
u2028https://github.com/cvakiitho/build-failure-analyzer-plugin/commit/c51ed3fbed62f7bb30a854ba8fcea5831649f1d2u2028
BFA插件似乎仍然使用jackson2API插件中的jackson类,而不是直接的maven依赖。导致https://issues.jenkins-ci.org/browse/JENKINS-62214在MongoJack内部的导入中使用了错误的jackson版本,导致缺少方法:
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)
在詹金斯的类路径中,来自Jackson2api插件的依赖性是否更高?
不能直接回答您,但运行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
因此,依赖项解析采用直接/声明的依赖项。它将覆盖未声明/传递的依赖项(越高的依赖项覆盖越低的依赖项(。