Gradle是否需要JDK来编译Java?

时间:2017-05-24 08:09:01

标签: java gradle

Gradle 是否需要 JDK 来编译 Java源文件? 或者它正在使用自己的内部编译器?

提前致谢

1 个答案:

答案 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.propertiesorg.gradle.java.home中明确定义。

对于这种情况,

JAVA_HOME需要指向JDK而不是JRE。

如上所述,Gradle只能在Java 7或更高版本上运行。但它可以通过跟随these steps配置为Java 6的编译,运行,测试,javadoc。因此,此高级自定义可用于处理某些极端情况,这些情况可能无法解决,只需更改gradle.properties

这两个插件还提供了两个属性:

  • sourceCompatibility - 编译Java源代码时使用的Java版本兼容性
  • targetCompatibility - 用于生成类的Java版本。

这些与用作输入的源语言版本和要生成的目标字节码版本有关。