Gradle需要JDK来编译Java吗?

4

Gradle需要JDK来编译Java源文件吗?还是使用自己的内部编译器?

提前致谢。


4
JDK是Java开发工具包的缩写。由于JRE不包含Java编译器,因此需要使用JDK来进行Java程序的开发与编译。 - Jens
我们需要设置JDK。 - Lova Chittumuri
1个回答

7

简短版: JRE 用于安装和运行,Groovy 构建脚本由 Gradle 自己的编译器编译,JDK 用于 Java 源代码编译。

详细版: 有几个需要注意的点:

1) 安装和运行

为了安装 Gradle 和运行 Gradle 构建,您需要 JDK 或 JRE,其版本至少为 7。

Gradle 主要使用 Groovy 作为语言,但它附带了自己的库并忽略任何其他已安装的 Groovy 库。因此,编译器是 Gradle 附带的 Groovy 库中的 Groovy 编译器。

顺便说一下,您也可以使用 Kotlin 来编写构建脚本,如此处所述。当然,这涉及到 Kotlin 编译器。

您可以通过运行 gradle -v 来检查 JVM 版本。

这意味着在安装过程中将使用在 JAVA_HOME 中配置的运行时。

对于运行构建也是如此,除非您在 gradle.properties 中使用以下属性 org.gradle.java.home 显式地覆盖了 JAVA_HOME。该属性和其他属性在此处定义。

JAVA_HOME 可以指向 JDK 或 JRE。在这种情况下,只需要安装 JRE 就足够了。

2) 源代码编译

为避免混淆,源代码意味着您有一个用语言编写的项目源代码,需要将其编译成字节码。在上一个点中,实际编写的代码是实际的构建脚本代码,这是一件单独的事情,由 Gradle 编译和处理。

使用 Gradle 插件对源代码进行编译,无论是 java、groovy、kotlin 还是其他任何语言。

您可以使用java插件或较新的java-library插件来编译 Java 源代码。这两者类似。

将使用在 JAVA_HOME 中配置的 JDK,或者可以在 gradle.properties 中使用以下属性 org.gradle.java.home 显式地定义。

对于此情况,JAVA_HOME 需要指向 JDK 而不是 JRE。

如上所述,Gradle只能在Java 7或更高版本上运行。但是,可以通过按照这些步骤进行配置,以编译、运行、测试和生成Java 6的Javadoc。因此,这种高级定制可以用于处理一些边缘情况,这些情况可能无法通过简单地更改gradle.properties来解决。
这两个插件还提供了两个属性:
- sourceCompatibility - 编译Java源代码时使用的Java版本兼容性 - targetCompatibility - 生成类的Java版本
这些属性与输入源语言版本和生成目标字节码版本相关。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接