java - WildFly 中的依赖项问题 - 在 pom.xml 中定义的版本与运行时使用的版本不同

标签 java maven wildfly pom.xml

我在 WildFly 上运行的项目存在依赖关系问题。 在 pom.xml 中,我对 Jackson 库依赖项有以下定义:

<dependencyManagement>
// ....
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.10.2</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <version>2.10.2</version>
        </dependency>
// ...
</dependencyManagement>

但是在运行时使用的是2.1.4版本。我也在 IntelliJ 中看到它,它通知我该版本“因与 2.1.4 冲突而被忽略”

WildFly 中包含版本 2.1.4,但我想使用版本 2.10.2。如何强制使用该版本库?

更新:

我的依赖树:

    --- maven-dependency-plugin:2.8:tree (default-cli) @ myapp-ear ---
    pl.net.me.myapp:myapp-ear:ear:1.0-SNAPSHOT
    +- pl.net.me.myapp:myapp-ejb:ejb:1.0-SNAPSHOT:compile
    |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
    |  |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
    |  +- org.apache.httpcomponents:httpclient:jar:4.5:compile
    |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.1:compile
    |  |  \- commons-logging:commons-logging:jar:1.2:compile
    |  +- commons-fileupload:commons-fileupload:jar:1.2.2:compile
    |  +- commons-lang:commons-lang:jar:2.6:compile
    |  +- commons-codec:commons-codec:jar:1.4:compile
    |  +- org.jasig.cas.client:cas-client-core:jar:3.2.1:compile
    |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.2.Final:compile
    |  +- org.drools:drools-core:jar:5.4.0.Final:compile
    |  |  +- org.mvel:mvel2:jar:2.1.0.drools16:compile
    |  |  \- org.drools:knowledge-api:jar:5.4.0.Final:compile
    |  +- net.sf.jasperreports:jasperreports:jar:6.0.3:compile
    |  |  +- commons-beanutils:commons-beanutils:jar:1.8.3:compile
    |  |  +- commons-collections:commons-collections:jar:3.2.1:compile
    |  |  +- commons-digester:commons-digester:jar:2.1:compile
    |  |  +- com.itextpdf:itextpdf:jar:5.5.0:compile
    |  |  +- com.itextpdf:itext-pdfa:jar:5.5.0:compile
    |  |  +- jfree:jcommon:jar:1.0.15:compile
    |  |  +- jfree:jfreechart:jar:1.0.12:compile
    |  |  +- xml-apis:xml-apis:jar:1.3.02:compile
    |  |  +- org.eclipse.jdt.core.compiler:ecj:jar:4.3.1:compile
    |  |  +- org.codehaus.castor:castor-xml:jar:1.3.3:compile
    |  |  |  +- org.codehaus.castor:castor-core:jar:1.3.3:compile
    |  |  |  +- javax.inject:javax.inject:jar:1:compile
    |  |  |  +- stax:stax:jar:1.2.0:compile
    |  |  |  |  \- stax:stax-api:jar:1.0.1:compile
    |  |  |  +- javax.xml.stream:stax-api:jar:1.0-2:compile
    |  |  |  \- org.springframework:spring-context:jar:4.1.4.RELEASE:compile
    |  |  |     +- org.springframework:spring-aop:jar:4.1.4.RELEASE:compile
    |  |  |     |  \- aopalliance:aopalliance:jar:1.0:compile
    |  |  |     +- org.springframework:spring-beans:jar:4.1.4.RELEASE:compile
    |  |  |     +- org.springframework:spring-core:jar:4.1.4.RELEASE:compile
    |  |  |     \- org.springframework:spring-expression:jar:4.1.4.RELEASE:compile
    |  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.1.4:compile
    |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.1.4:compile
    |  |  +- org.apache.lucene:lucene-core:jar:4.5.1:compile
    |  |  +- org.apache.lucene:lucene-analyzers-common:jar:4.5.1:compile
    |  |  +- org.apache.lucene:lucene-queryparser:jar:4.5.1:compile
    |  |  |  +- org.apache.lucene:lucene-queries:jar:4.5.1:compile
    |  |  |  \- org.apache.lucene:lucene-sandbox:jar:4.5.1:compile
    |  |  |     \- jakarta-regexp:jakarta-regexp:jar:1.4:compile
    |  |  \- org.olap4j:olap4j:jar:0.9.7.309-JS-3:compile
    |  +- org.codehaus.groovy:groovy-all:jar:2.4.0:compile
    |  +- org.apache.sanselan:sanselan:jar:0.97-incubator:compile
    |  +- org.jbpm:jbpm-bpmn2:jar:5.4.0.Final:compile
    |  |  +- org.jbpm:jbpm-flow-builder:jar:5.4.0.Final:compile
    |  |  |  \- org.jbpm:jbpm-flow:jar:5.4.0.Final:compile
    |  |  \- org.slf4j:slf4j-api:jar:1.6.4:compile
    |  +- org.drools:drools-compiler:jar:5.4.0.Final:compile
    |  |  +- org.antlr:antlr-runtime:jar:3.3:compile
    |  |  +- org.antlr:antlr:jar:3.3:compile
    |  |  \- org.antlr:stringtemplate:jar:3.2.1:compile
    |  +- org.drools:drools-clips:jar:5.4.0.Final:compile
    |  +- org.drools:drools-decisiontables:jar:5.4.0.Final:compile
    |  |  \- net.sourceforge.jexcelapi:jxl:jar:2.6.10:compile
    |  +- org.drools:drools-jsr94:jar:5.4.0.Final:compile
    |  |  \- jsr94:jsr94:jar:1.1:compile
    |  +- org.drools:drools-persistence-jpa:jar:5.4.0.Final:compile
    |  |  +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:compile
    |  |  +- com.google.protobuf:protobuf-java:jar:2.4.1:compile
    |  |  +- dom4j:dom4j:jar:1.6.1:compile
    |  |  +- org.javassist:javassist:jar:3.14.0-GA:compile
    |  |  \- javax.transaction:jta:jar:1.1:compile
    |  +- org.drools:drools-templates:jar:5.4.0.Final:compile
    |  +- org.drools:drools-verifier:jar:5.4.0.Final:compile
    |  |  +- com.google.guava:guava:jar:r06:compile
    |  |  +- com.thoughtworks.xstream:xstream:jar:1.4.1:compile
    |  |  |  +- xmlpull:xmlpull:jar:1.1.3.1:compile
    |  |  |  \- xpp3:xpp3_min:jar:1.1.4c:compile
    |  |  \- com.lowagie:itext:jar:2.1.2:compile
    |  |     +- bouncycastle:bcmail-jdk14:jar:138:compile
    |  |     \- bouncycastle:bcprov-jdk14:jar:138:compile
    |  +- org.drools:knowledge-internal-api:jar:5.4.0.Final:compile
    |  +- commons-io:commons-io:jar:2.1:compile
    |  +- pl.net.me.myapp:mka-commons-jar:jar:1.0-SNAPSHOT:compile
    |  |  +- log4j:log4j:jar:1.2.17:compile
    |  |  +- com.google.zxing:core:jar:3.1.0:compile
    |  |  +- com.google.zxing:javase:jar:3.1.0:compile
    |  |  \- org.projectlombok:lombok:jar:1.18.10:compile
    |  +- pl.net.me.myapp:myapp-cdm:jar:1.0-SNAPSHOT:compile
    |  +- pl.net.me.myapp:myapp-database:jar:1.0-SNAPSHOT:compile
    |  +- net.sf.jasperreports:jasperreports-fonts:jar:6.0.0:compile
    |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.2:compile
    |  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.2:import
    +- pl.net.me.myapp:myapp-web:war:1.0-SNAPSHOT:compile
    +- pl.net.me.myapp:iapp-web:war:1.0-SNAPSHOT:compile
    +- pl.net.me.myapp:sop-web:war:1.0-SNAPSHOT:compile
    \- pl.net.me.myapp:my-maps:war:1.0-SNAPSHOT:compile

最佳答案

我找到了解决方案。在 WildFly 18.0.1 上一切正常,因为它包含 Jackson 库的 2.9.10.1 版本。问题出在 WildFly 8.2.1 上,因为它包含版本 2.1.4。运行时使用的Jackson库版本是WildFly提供的版本。

引用这个问题: Wildfly 9 - How do I exclude Jackson 我将文件 jboss-deployment-struct.xml 添加到我的 META-INF 目录中,内容如下:

    <jboss-deployment-structure>
        <deployment>
            <exclusions>
                <module name="com.fasterxml.jackson.core.jackson-core" />
                <module name="com.fasterxml.jackson.core.jackson-databind" />
                <module name="com.fasterxml.jackson.core.jackson-annotations" />
                <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
                <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
            </exclusions>
        </deployment>
    </jboss-deployment-structure>

不幸的是,它仅适用于WildFly 18.0.1,WildFly 8.2.1由于其他依赖问题而无法启动,因此这种情况下最合理的解决方案是升级WildFly或从pom.xml中删除jackson-datatype-jsr310

关于java - WildFly 中的依赖项问题 - 在 pom.xml 中定义的版本与运行时使用的版本不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60093781/

相关文章:

java - 树结构中的递归回溯

java - 为什么 Eclipse JUnit4 Runner 不获取 META-INF/services 文件

maven - Grails装置:grails运行应用程序有效,但mvn grails:run-app无法运行

java - 如何在 Spring 上下文中插入 Maven 配置文件属性

java - Wildfly 重新启动时,HornetQ 不遵循队列中的最后一个值

java - Android Studio Electric Eel - 提供的 javaHome 似乎无效。尝试位置 : C:\Program Files\Android\Android Studio\jre\bin\java. exe

java - 使用媒体播放器播放 .M3U 链接

java - 如何通过避免重复来缩短 Tic Tac Toe 代码

java - Wildfly 8 意外元素 '{urn:jboss:domain:web:1.1}subsystem'

java - Wildfly 11 随机记录到 console.log 而不是服务器日志