Gradle 是否需要 JDK 来编译 Java源文件? 或者它正在使用自己的内部编译器?
提前致谢
答案 0 :(得分:6)
简短版本: JRE用于安装和运行,Groovy构建脚本由Gradle自己的编译器编译,JDK用于Java源代码编译。
长版:有多个兴趣点:
1)安装&运行强>
要安装Gradle并运行Gradle构建,您需要一个JDK或JRE,其版本至少为7.
Gradle主要使用Groovy作为一种语言,但它带有自己的库,并忽略了安装的任何其他Groovy库。因此,编译器是Gradle附带的Groovy库的Groovy编译器。
作为旁注,您还可以使用Kotlin将脚本构建为described here。这当然涉及Kotlin编译器。
您可以通过运行gradle -v
来检查JVM版本。
这意味着在安装期间将使用JAVA_HOME
中配置的运行时。
运行构建也是如此,除非您使用以下属性JAVA_HOME
明确覆盖gradle.properties
中的org.gradle.java.home
。此属性和其他属性定义为here。
JAVA_HOME
可以指向JDK或JRE。在这种情况下,只需安装JRE即可。
2)源代码编译
要消除任何混淆,源代码,意味着您拥有项目源,用一种语言编写,需要编译成字节码。在上一点,正在编写的代码是实际的构建脚本代码,这是一个单独的东西,由Gradle编译和处理。
使用Gradle插件编译源代码,包括java,groovy,kotlin或其他任何东西。
您可以使用java
插件或较新的java-library
插件编译JAVA源代码。两者相似。
正在使用的JDK将是JAVA_HOME
中配置的JDK,或者可以使用以下属性gradle.properties
在org.gradle.java.home
中明确定义。
JAVA_HOME
需要指向JDK而不是JRE。
如上所述,Gradle只能在Java 7或更高版本上运行。但它可以通过跟随these steps配置为Java 6的编译,运行,测试,javadoc。因此,此高级自定义可用于处理某些极端情况,这些情况可能无法解决,只需更改gradle.properties。
这两个插件还提供了两个属性:
sourceCompatibility
- 编译Java源代码时使用的Java版本兼容性targetCompatibility
- 用于生成类的Java版本。这些与用作输入的源语言版本和要生成的目标字节码版本有关。