Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对maven使用不同版本的jar:一个用于JDK 8,另一个用于JDK 11_Java_Java 11_Java Module - Fatal编程技术网

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

Java 对maven使用不同版本的jar:一个用于JDK 8,另一个用于JDK 11,java,java-11,java-module,Java,Java 11,Java Module,我们正在用JDK11测试编译。在pom.xml中,我们依赖于xml API: xml API xml API 1.4.01 代码在JDK 8中编译得很好,但在JDK 11中会出现错误,因为xml API中的大多数类也在JDK 11中,并且会发生以下错误: 可以从多个模块访问javax.xml.parsers包:unnamed,java.xml pom.xml中有没有一种方法可以有条件地使用依赖项,比如是否设置了jdk11.compile属性?只有在检测到精确的jdk版本时,才能使用Maven

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


xml API
xml API
1.4.01
代码在JDK 8中编译得很好,但在JDK 11中会出现错误,因为xml API中的大多数类也在JDK 11中,并且会发生以下错误: 可以从多个模块访问javax.xml.parsers包:unnamed,java.xml


pom.xml中有没有一种方法可以有条件地使用依赖项,比如是否设置了jdk11.compile属性?

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

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

爪哇8

作为一般建议,您可能会从库中寻找一个升级版本来支持JDK-11本身,这样会更干净。如果您完全删除
XMLAPI
依赖关系会怎么样?JDK 8已经拥有
XMLAPI
提供的所有类。