Error:java: javacTask: source release 8 requires target release 1.8

今天在使用Idea跑代码时突然出现了下面错误,因为代码中使用了jdk 1.8功能:
错误描述
开始以为是我的模块语言级别设置小于1.8,于是在project structure中将jdk设置为1.8,如下:
jdk设置为1.8
同时将project sdk设置为1.8。
但是设置完后重新运行发现还是上面错误,同时发现target/classes目录下没有编译后的class文件。仔细看上面错误可以发现,Idea的javac能正常编译,maven构建时编译出错了,那这里大概可以确定是maven出错了。后来想到我在project structure设置language level时,窗口下方提醒如下:
Idea编译提醒
这里可以看出,Idea对构建的构建也是依赖当前使用构建工具Maven,如果Maven中配置了编译器版本,Idea也会随之变化。

解决办法

pom.xml中配置maven-compiler-plugin如下:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

重新编译就会发现target/classes目录下class文件一切正常,项目也能正常运行了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值