Project Settings → Modules中设置的jdk版本和Maven中的Runner中的jre的版本是什么关系?还有,在idea中的项目我点击运行按钮和用Mave进行compile的区别

✅ 1. Project Settings → Modules 中的 JDK

  • ✅ 这是每个模块实际编译源码时使用的 JDK

  • IDEA 用这个 JDK 来进行:

    • Java 代码编译(IDE 内部)
    • 代码检查 / 提示 / 语法高亮
    • 自动构建(Build → Build Project)

🔧 你点 IDEA 的菜单栏 Build → Build Project右键类 → Compile就是用这个 JDK 来编译的


✅ 2. Settings → Build Tools → Maven → Runner 中的 JRE

  • ✅ 这是 Maven 插件在 IDEA 中运行构建命令(如 mvn compile)时使用的 JDK。

比如你点击 IDEA 左侧的 Maven 面板中的:

Lifecycle → compile / package

此时实际执行的是:

mvn compile

➡️ 而这里使用的 JDK,就由 Maven Runner 中配置的 JDK 决定。不是由 Modules 设置决定的。


✅ 总结对比

项目设置位置控制什么是否用于 Maven实际影响
Modules → JDKIDEA 编译项目❌ 不影响 Maven 构建用于 Build 菜单编译、语法提示
Maven → Runner → JREMaven 命令运行时用的 JDK✅ 控制 Maven 构建时用哪个 JDK控制 mvn compile 的执行 JDK
JAVA_HOME(环境变量)CLI 命令行中 Maven 用的 JDK✅(不在 IDEA 中)控制终端手动运行 Maven 时的 JDK

✅ 3. “点击运行按钮” vs “点击 Maven compile”的区别

操作方式使用的 JDK使用哪个构建逻辑是否用 Maven
🔘 点击绿色运行按钮(Run mainModules 设置的 JDKIDEA 内部编译器编译并运行❌ 不用 Maven
⚒ 点击 Build → Build ProjectModules 设置的 JDKIDEA 编译器❌ 不用 Maven
📦 点击 Maven 面板 → compileMaven Runner 的 JDK用 Maven 编译器构建✅ 用 Maven
🖥 命令行运行 mvn compile环境变量 JAVA_HOME 的 JDK用 Maven 编译器构建✅ 用 Maven

💡 举个实际例子

你项目中 pom.xml 设置了:

<properties>
  <maven.compiler.source>17</maven.compiler.source>
  <maven.compiler.target>17</maven.compiler.target>
</properties>
  • 若 Modules 设置用的是 JDK 1.8,你用绿色运行按钮启动,可能会报错:语法不支持或类找不到。
  • 若 Maven Runner 设置用的是 JDK 17,你点 Maven → compile,会成功。
  • JAVA_HOME 设的是 JDK 11,你在终端 mvn package,可能编译失败(版本不符)。

🧠 最佳实践建议

场景建议配置
保证一致性Modules JDK、Maven Runner JDK、JAVA_HOME 都设为同一版本(如 JDK 17)
编译兼容性pom.xml 设置 <source>/<target> 与实际 JDK 匹配
避免运行失败Run → Edit Configurations → JDK 也设置为一致版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值