Maven 指定编译language level

问题:在idea中遇到如下问题

//-source 1.5 中不支持 diamond 运算符   (请使用 -source 7 或更高版本以启用 diamond 运算符)
Diamond types are not supported at language level '5'
//-source 1.5 中不支持 lambda 表达式(请使用 -source 8 或更高版本以启用 lambda 表达式)
Lambda expressions are not supported at language level '5'

解决方法:
1、File -> Project Structure -> Modules -> Sources -> Language level -> 如果是jdk1.8 就是 8 - Lambdas,type annotations etc
注:这样idea就没有报错了,但是编译的时候还会报错Error:java: Compilation failed: internal java compiler error
2、pom文件加入,指定maven-compiler-plugin的版本号,尤其是-source-target

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

maven-compiler-plugin最新的是3.8.1,里面写了默认的-source-target是1.6,强烈建议更改-source-target的默认值

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自:http://www.cnblogs.com/crazy-fox/archive/2012/02/09/23...
    晴天哥_王志阅读 2,318评论 2 27
  • 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编...
    付鹏丶阅读 1,650评论 0 15
  • 使用指导 如何添加外部依赖jar包 在Maven工程中添加依赖jar包,很简单,只要在POM文件中引入对应的<de...
    静默虚空阅读 2,847评论 0 13
  • 经过Maven生命周期的学习,我们知道在Maven core中仅仅定义了抽象的生命周期,具体的实现是由插件完成的,...
    SonyaBaby阅读 1,328评论 0 3
  • 创建 简单操作 \ 转义符 +拼接 不可以用 字符串和 一个非字符串类型的对象相加 * 复制 字符串 和 0 或者...
    你笑的那么美丶阅读 195评论 0 0