IDEA maven 工程 configuration may be lost

2019-08-09 0 By admin

一、java编辑器字节码版本号不支持

在使用IDEA 开发Maven 项目的过程中,当运行项目时,可能会报错如下:
Error:(45, 45) java: diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)

根据提示,我们要修改IDEA 为工程配置的java 编译器的bytecode 的版本号。

1.1、解决方法

步骤1、打开File—Settings—Build, Execution, Deployment—Java Compiler,修改Project bytecode version为8,Target bytecode version也修改成8。
步骤2、打开Project Structure—Modules—Sources,设置LanguageLevel为8。
然后就能正常运行项目了。

二、字节码配置不能长久生效

上面的解决方法有个最大的问题就是如果项目改动的话,之前调整的字节码版本配置就会恢复城原来的样子。这显然不是我们想要的。
在调整过程中我们可以看到提示信息:
Module xxx is imported from Maven.Any changes made in its configuration may be lost after reimporting.

2.1、解决方法

在项目的POM文件中配置上字节码source和target的版本。

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

正是因为pom中没有设置jdk版本,所以每次修改pom后重新运行,都会恢复默认版本1.5。