我有一个maven项目,它需要支持使用Jdk 8和Jdk 11构建。当它使用Jdk 8构建时,我看到它还打包了jakarta.xml.bind:jakarta.xml.bind-api jar。(当部署在运行于Jdk 8上的JEE服务器上时,这会导致一些错误)
依赖项旨在提供一些自版本9以来从Jdk中排除但在Jdk 8中存在的包。那么如何仅在使用Jdk 8构建时排除它,否则它应该仍然存在?
我从几个库中传递地获得依赖关系:
[INFO] \- org.apache.cxf:cxf-core:jar:3.5.3:compile (version managed from 3.5.3)
[INFO] +- org.glassfish.jaxb:jaxb-runtime:jar:2.3.5:compile
[INFO] | \- (jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.0:compile - version managed from 2.3.3; omitted for duplicate)
[INFO] \- jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.0:compile (version managed from 2.3.3)
我读到关于使用maven编译器插件与配置像bellow,但我不能让它工作,因为我想:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludeGroupIds>jakarta.xml.bind</excludeGroupIds>
<excludeArtifactIds>jakarta.xml.bind-api</excludeArtifactIds>
<excludeTransitive>true</excludeTransitive>
<excludeScope>compile</excludeScope>
<excludeClassifiers>jdk8</excludeClassifiers>
</configuration>
....
1条答案
按热度按时间biswetbf1#
我会把它排除在外。
然后,您可以再次将其声明为dependency,但声明在基于JDK版本激活的概要文件中,如