使用Maven编译错误-解决方案
警告: 目标发行版 1.8(也可能是其他版本号) 与默认的源发行版 17 冲突(也可能是其他版本号)
错误: 无效的目标发行版:1.17(也可能是其他版本号)
错误一 --》 警告: 目标发行版 1.8(也可能是其他版本号) 与默认的源发行版 17 冲突(也可能是其他版本号)
-
首先先去检查pom.xml文件中的build标签中的source子标签和target子标签中的参数是多少以及, 你需要的运行环境是什么, 从而进行调整, 如果你的源发行版本也就是说你ide的开发JDK环境如果是17的话, 当你source子标签和target子标签中的参数与17不匹配的话就说明, 你的目标发行版和源发行版版本冲突
-
解决方案, 调整两个版本为相同版本即可
-
如果你的pom文件中没有build标签这里需要去检查, maven.conf 的settings.xml文件中你是否有配置了标签如下所示
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
-
此时因为对于build标签或者setting文件中的<maven.compiler.*>的配置就是项目构建的配置, 所以同理修改settings文件中的参数与ide中配置的开发环境的jdk版本相同为17(这里之所以是17因为假设的就是我的开发环境是17, 而构建环境是1.8导致的,所以修改为17)
-
如果你修改完之后报了类似错误二的问题请继续看下去
错误二 --》 错误: 无效的目标发行版:1.17(也可能是其他版本号)
-
首先观察maven配置文件的settings.xml(这里不过多赘述可以去看我的maven基础和进阶博客理解maven )中的profile标签中的配置
-
如果settings.xml中没有做配置的话, 则打开ide查看是哪一个model模块导致了失败从而查看对应模块的例子如下
- 这就说明我是test-maven-son出了问题, 但是一般来说基本的build标签都是父工程进行配置的所以知道test-maven-送的父工程打开pom.xml文件如下(如果你的父pom和子pom中都没有build标签请耐心向下看具体流程在下面)
我们可以观察到source或者target标签中的参数是1.17, 这里