Java WildFly中的依赖项问题-在pom.xml中定义的版本不是运行时使用的版本
我在WildFly上运行的项目中存在依赖项问题。 在pom.xml中,我对Jackson库依赖项有以下定义:Java WildFly中的依赖项问题-在pom.xml中定义的版本不是运行时使用的版本,java,maven,wildfly,pom.xml,Java,Maven,Wildfly,Pom.xml,我在WildFly上运行的项目中存在依赖项问题。 在pom.xml中,我对Jackson库依赖项有以下定义: <dependencyManagement> // .... <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId
<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>
我找到了解决办法。在WildFly 18.0.1上,一切正常,因为它包含Jackson library的2.9.10.1版。问题出在WildFly 8.2.1上,因为它包含版本2.1.4。运行时使用的Jackson库版本是WildFly提供的版本 关于这个问题: 我在META-INF目录中添加了文件jboss-deployment-structure.xml,其中包含以下内容:
<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。您是否可以添加
mvn dependency:tree
的相关部分?@JFMeier我添加了。奇怪的是,jackson-dattype-jsr310
具有作用域import
,这不应该是jar的作用域。你能分析一下POM的来源吗?
<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>