Maven: 用 JDK8 编译 Java 7
Maven: compile Java 7 with JDK8
在做之前我需要确保一件事,所以我还没有测试我提出的解决方案。
我有一个 Jenkins
,其中一个项目使用 JDK 7
和目标 Java 7
进行编译。我有一个用 Java 8
编写的新项目,我想将它添加到我的 Jenkins
以便它也能构建它。
因此,我需要在机器上安装一个JDK 8
。我知道我们可以在每个项目的 pom 中指定 java 编译器版本,但我担心:一旦我安装了 JDK 8
,我的 Java 7
项目是否仍然能够编译那个JDK 8
?我是否应该在机器上安装两个 JDK
,并为每个项目配置一个能够找到自己的 JDK
的配置?或者我的 Java 7
项目是否能够使用 JDK 8
在 Java 7
中编译?
感谢您的帮助。
如评论中所述,可以在 Jenkins 机器上安装多个 JDK(参见 this answer as an example)并配置每个作业以使用特定作业。
此外,您可以使用 Java8 JDK 完美地编译您的 Java7 项目。但是,我建议您不要这样做。事实上,如果在语言级别强制执行向后兼容性,您可能会发现一些 API 中存在您没有意识到的错误,但您使用的库已经知道并已修复,从而产生一些奇怪的行为。因此,您的 Java7 应用程序将使用 Java8 JDK 进行编译,但会在运行时暴露错误。解决这些错误将是一场噩梦(相信我,我的朋友,我在以前的一家普通公司遇到过那种恐怖)。
您可以在您的机器上使用多个 jdk,但请记住为特定项目使用特定 jdk。如果安装了多个 jdk,请仔细配置项目的 POM 文件。 Compiling Source Using Maven
或者您可以在作业配置的构建环境部分更改 JAVA_HOME,您可以为作业设置环境变量。虽然,您可以使用多个 JDK,但在 CI/CD 中使用它不是一个好习惯。使用具有特定配置的特定机器。
在做之前我需要确保一件事,所以我还没有测试我提出的解决方案。
我有一个 Jenkins
,其中一个项目使用 JDK 7
和目标 Java 7
进行编译。我有一个用 Java 8
编写的新项目,我想将它添加到我的 Jenkins
以便它也能构建它。
因此,我需要在机器上安装一个JDK 8
。我知道我们可以在每个项目的 pom 中指定 java 编译器版本,但我担心:一旦我安装了 JDK 8
,我的 Java 7
项目是否仍然能够编译那个JDK 8
?我是否应该在机器上安装两个 JDK
,并为每个项目配置一个能够找到自己的 JDK
的配置?或者我的 Java 7
项目是否能够使用 JDK 8
在 Java 7
中编译?
感谢您的帮助。
如评论中所述,可以在 Jenkins 机器上安装多个 JDK(参见 this answer as an example)并配置每个作业以使用特定作业。
此外,您可以使用 Java8 JDK 完美地编译您的 Java7 项目。但是,我建议您不要这样做。事实上,如果在语言级别强制执行向后兼容性,您可能会发现一些 API 中存在您没有意识到的错误,但您使用的库已经知道并已修复,从而产生一些奇怪的行为。因此,您的 Java7 应用程序将使用 Java8 JDK 进行编译,但会在运行时暴露错误。解决这些错误将是一场噩梦(相信我,我的朋友,我在以前的一家普通公司遇到过那种恐怖)。
您可以在您的机器上使用多个 jdk,但请记住为特定项目使用特定 jdk。如果安装了多个 jdk,请仔细配置项目的 POM 文件。 Compiling Source Using Maven
或者您可以在作业配置的构建环境部分更改 JAVA_HOME,您可以为作业设置环境变量。虽然,您可以使用多个 JDK,但在 CI/CD 中使用它不是一个好习惯。使用具有特定配置的特定机器。