问题描述
我正在将一个项目从 jdk8 迁移到 jdk11。 在我的 pom.xml 文件中,我已经把
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<java.version>11</java.version>
和
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.11</source>
<target>1.11</target>
<release>11</release>
<fork>true</fork>
</configuration>
</plugin>
运行 mvn clean install 命令后,出现错误:在指定路径 /opt/jdk-11.0.9/../lib/tools.jar 找不到工件 jdk.tools:tools:jar:1。我知道 tools.jar 已从 jdk11 中删除。我在想我的 pom.xml 中的一些依赖项依赖于 tools.jar,我还没有找到一个很好的解决方案来弄清楚这些依赖项是什么。或者可能是其他一些问题。
解决方法
根据您的上述配置,预计会出现以下错误:
致命错误编译:错误:无效目标版本:1.11
我建议 το 更改要解决的源和释放目标 11
而不是 1.11
,请参见下面的示例。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
然后使用 mvn dependency:tree
和 mvn dependency:analyze
和/或使用 -X
option 对其进行调试。