[toc]
关于Idea中的Maven和Gradle中jdk版本
| 层次 | 在哪里设置 | 主要影响什么 | 是否直接决定最终编译/运行 JDK | 备注 |
|---|---|---|---|---|
| IDEA 项目层 | Project Structure -> Project SDK |
IDEA 的项目模型、代码提示、部分本地运行配置 | 一般不直接决定 Gradle 项目的最终构建 JDK | 更偏 IDE 层 |
| IDEA 语法层 | Project Structure -> Language level |
编辑器语法检查、补全、部分 IDE 编译设置 | 一般不直接决定 Gradle 的最终构建 JDK | 更偏“能不能写这种语法” |
| Gradle 进程层(IDEA 外层) | Settings -> Gradle -> Gradle JVM |
IDEA 用哪个 JVM 启动 Gradle、导入项目、执行 Gradle task | 会影响,但若配置了 Toolchain,常常不是最终任务 JDK | 决定 Gradle 进程跑在哪个 JDK 上 |
| Gradle 进程层(Gradle 内层) | gradle.properties 中 org.gradle.java.home |
指定这个 Gradle build/Daemon 使用哪个 JDK 运行 | 会影响,但若配置了 Toolchain,通常也不是最终任务 JDK | 相当于强行指定 Gradle 自己跑在哪个 JDK 上 |
| Gradle 任务层 | build.gradle 里的 toolchain |
compileJava、test、javadoc、JavaExec 等任务实际使用的 JDK |
通常最关键 | 有 Toolchain 时,任务通常按它走 |
| Gradle 兼容层 | sourceCompatibility / targetCompatibility / --release |
指定源码级别、目标字节码级别、API 兼容级别 | 会影响编译结果,但不等于指定“Gradle 自己运行的 JDK” | 和 Toolchain 不是一回事 |
| Maven 进程层 | IDEA 里的 Maven Runner JRE / 系统 JAVA_HOME |
Maven 这个程序本身跑在哪个 JDK 上 | 会影响,但若配置了 Maven Toolchains,也未必是最终编译 JDK | |
| Maven 任务层 | pom.xml 里的 compiler plugin、toolchains 等 |
Maven 编译/测试任务实际使用的 JDK | 通常是最关键的 |
Idea中Maven、Gradle项目的三种网络代理方式
方式一:配置Idea(推荐)
方式二:Gradle项目
①全局(不推荐)
配置~/.gradle/gradle.properties文件
1 | =127.0.0.1 |
②项目级(推荐)
配置``gradle.properties`文件
1 | =127.0.0.1 |
方式三:Maven项目
①全局(不推荐)
配置~/.m2/setting.xml文件
1 | <settings> |