背景:在idea下,使用 maven-compiler-plugin 插件进行依赖的管理时,
<plugins>
<!--maven插件配置-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
相关报错 :
- 无效的目标发行版: 1.8.0_302
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project mfy-pug-commons: Fatal error compiling
以上情况时,查看多个博客总结的可能情况如下
- 有jdk不匹配的问题,
- 也有pom.xml中 maven-compiler-plugin 配置上有问题
第一个情况:
可以查看别人的博客
检查一下jdk上是否一致
第二个情况:
参考
原因可能是 <source>标签里面只能是1.8之类的,
举例我出现的问题是 <source>我使用了引用,但是我Java.version却不是1.8
具体为什么我的${java.version}会是1.8.0_322而不是1.8。可能与我项目的sdk有关。
还有一个问题,我也不知道为啥报错的是 1.8.0_302,而不是${java.version}指示的1.8.0.322 同时maven可以跑之后就改回${java.version}也没有出现问题,我就归咎与idea神奇的缓存
总而言之,使用${java.version}很便捷,但是出现问题,再直接保证<source>就是你使用的java版本。
如果一些maven无法下载可以试一下everything 删除所有
.lastUpdated
参考文章