有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java对maven使用不同版本的jar:一个用于JDK 8,另一个用于JDK 11

我们正在用JDK11测试编译。在我们的pom中。xml,我们依赖于xml API:

<dependency>
    <groupId>xml-apis</groupId>
    <artifactId>xml-apis</artifactId>
    <version>1.4.01</version>
</dependency>

代码在JDK 8中编译得很好,但在JDK 11中会出现错误,因为xml API中的大多数类也在JDK 11中,并且会发生以下错误: 包javax。xml。可以从多个模块访问解析器:未命名、java。xml

有没有办法进入pom。xml必须有条件地使用依赖项,如jdk11是否为。是否设置了编译属性


共 (1) 个答案

  1. # 1 楼答案

    只有在检测到精确的jdk版本时,才能使用Maven配置文件添加特定的依赖项:

    <profile>
        <id>Java 8</id>
        <activation>
            <jdk>1.8</jdk>
        </activation>
        <dependencies>
            <dependency>…</dependency>
        </dependencies>
    </profile>
    

    还可以使用自定义属性激活配置文件。有关更多详细信息,请参阅Maven指南:

    https://maven.apache.org/guides/introduction/introduction-to-profiles.html