IDEA切换Meven项目JDK版本

主要内容

  • 通过idea手动设置jdk版本(不推荐)
  • 通过maven配置文件配置默认jdk版本
  • 通过pom.xml进行jdk版本覆盖

切换JDK版本

  • 检查并切换项目jdk版本

    (如果需要切换到17,那么下面所有操作均应该选择17

    • File → Project Structure → Project

      jdk版本选择

方式一、手动设置(不推荐!)

  • 选择Java编译的jdk版本
    • File → Setting → Build, Execution, Deployment → Compiler → Java Compiler

      java编译选择jdk

  • 选择Java语言级别

    模块(子项目)选择Java语言级别(和jdk版本一致)

    • File → Project Structure → Modules

      模块选择jdk版本

Tips:手动设置会因为各种原因失效,所以不推荐

方式二、maven配置

  • 找到maven配置文件

    找到idea所配置的maven配置文件(settings.xml)

    • File → Setting → Build, Execution, Deployment → Build Tools → Maven

      idea中配置maven

  • profiles标签中新增版本配置

    打开配置文件,在profiles标签中检查是否配置jdk版本

    没有就新增一个配置,此处为jdk17的配置
    # maven设置jdk版本
    <profile>   
        <id>jdk17</id>   
        <activation>   
            <activeByDefault>true</activeByDefault>   
            <jdk>17</jdk>
        </activation>   
        <properties>   
            <maven.compiler.source>17</maven.compiler.source>   
            <maven.compiler.target>17</maven.compiler.target>   
            <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>   
        </properties>   
    </profile>
    
    常用的几个其他setting.xml文件配置:
    # 本地包仓库,设置maven本地仓库路径
    <localRepository>E:/Java/maven/apache-maven-3.6.3/repository</localRepository>
    
    # 镜像
    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>*</mirrorOf>
        <name>阿里云公共仓库</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    
Tips:在这里你应该能发现,在不改变maven的情况下,可以通过User settings ...项选择maven的配置文件来切换jdk版本配置(当然不只包括jdk版本):

maven多配置Jdk版本

注意:设置maven和其配置文件存在为当前项目设置和全局设置两种设置方式,在项目中打开一般为为当前项目设置
全局设置可参考下图:

全局设置

方式三、pom.xml覆盖

  • build声明版本

    在项目的pom.xml文件中新增build配置,指定jdk版本

<build>
    <plugins>
        <plugin>
            <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version>
            <configuration>
                <source>17</source>
                <target>17</target>
            </configuration>
        </plugin>
    </plugins>
</build>
Tips:主项目配置后,子项目也会生效

总结分析:

  • 方式一,存在失效的情况
  • 方式二,需要切换jdk版本和maven配置文件
  • 方式三,需要切换jdk版本和并添加添加build项指定jdk版本