maven编译报错 -source 1.5 中不支持 lambda 表达式
2017-08-18 14:29
746 查看
在用maven编译项目是由于项目中用了jdk 1.8, 编译是报错 -source 1.5 中不支持 lambda 表达式,Google找到这篇解决方案,记录一下:
编译时报如下错误:
奇怪的是我的 Jenkins 构建机器上只安装了 JDK 8,为什么还会说不支持 diamond 和 lambda 呢?在 Google 大神的指引下,在 Maven Compiler 插件介绍 里面找到了答案:
原来 Maven Compiler 插件默认会加 -source 1.5 及 -target 1.5 参数来编译(估计是为了兼容一些比较老的 Linux 服务器操作系统,它们通常只有 JDK 5),而我们的代码里使用了 JDK 7/8 的语法。解决办法在这里:
编译时报如下错误:
[ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] AAA\.jenkins\workspace\BBB\CCC.java:[73,46] 错误: -source 1.5 中不支持 diamond 运算符 [ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符) [ERROR] AAA\.jenkins\workspace\BBB\DDD.java:[38,33] 错误: -source 1.5 中不支持 lambda 表达式 [ERROR] (请使用 -source 8 或更高版本以启用 lambda 表达式)
奇怪的是我的 Jenkins 构建机器上只安装了 JDK 8,为什么还会说不支持 diamond 和 lambda 呢?在 Google 大神的指引下,在 Maven Compiler 插件介绍 里面找到了答案:
Also note that at present the default source setting is 1.5 and the default target setting is 1.5, independently of the JDK you run Maven with.
原来 Maven Compiler 插件默认会加 -source 1.5 及 -target 1.5 参数来编译(估计是为了兼容一些比较老的 Linux 服务器操作系统,它们通常只有 JDK 5),而我们的代码里使用了 JDK 7/8 的语法。解决办法在这里:
<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> [...] </build> [...] </project>
相关文章推荐
- maven编译报错 -source 1.5 中不支持 lambda 表达式(转)
- Java8系列(错误解决)--maven编译时"-source 1.5 中不支持 lambda 表达式"问题的解决
- maven编译报错 -source 1.5 中不支持 lambda 表达式
- Java异常 | maven编译报错 -source 1.5 中不支持 lambda 表达式的快速解决办法
- 【Maven】Maven-maven编译报错 -source 1.5 中不支持 lambda 表达式
- IDEA无法编译java8的lambda表达式提示Error:(16, 48) java: -source 1.5 中不支持 lambda 表达式
- maven打包报错 -source 1.5 中不支持 lambda 表达式
- idea编译出现Error:(5, 22) java: -source 1.5 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)
- IDEA无法编译java8的lambda表达式提示Error:(16, 48) java: -source 1.5 中不支持 lambda 表达式
- Java8---java:-source 1.5 中不支持lambda表达式 || 设置idea编译环境
- maven 编译报错 java: -source 1.5 中不支持switch 中存在字符串
- maven编译报错 -source 1.5 中不支持 lambda 表达式
- maven 编译报错 java: -source 1.5 中不支持switch 中存在字符串
- maven编译报错 -source 1.5 中不支持 lambda 表达式
- intellij-IDE运行Java程序报错:java: -source 1.5 中不支持 lambda 表达式
- Maven 编译时报错 -source 1.5 中不支持 multi-catch 语句 的解决办法
- IDEA中打包Spark项目提示Error:(16, 48) java: -source 1.5 中不支持 lambda 表达式
- maven 编译报错 java: -source 1.5 中不支持switch 中存在字符串
- Maven 编译时报错 -source 1.5 中不支持 multi-catch 语句 的解决办法
- maven编译时出现-source 1.3 中不支持泛型 (请尝试使用 -source 1.5 以启用泛型)