Maven:使用JDK8编译Java 7

时间:2015-01-30 09:04:28

标签: java maven jenkins

在做之前我需要确保一件事,所以我还没有测试过我建议的解决方案。

我有Jenkins,其中一个项目使用JDK 7与目标Java 7进行编译。我有一个用Java 8编写的新项目,我想将它添加到我的Jenkins中,以便它也可以构建它。

因此,我需要在机器上安装JDK 8。我知道我们可以在每个项目的pom中指定java编译器版本,但我担心这一点:一旦我安装了JDK 8,我的Java 7项目仍然可以用{JDK 8进行编译1}?我应该在机器上安装两个JDK,并为每个项目配置一个能够找到自己JDK的项目吗?或者我的Java 7项目是否可以使用Java 7JDK 8中汇编?

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

如评论中所述,可以在Jenkins机器上安装多个JDK(请参阅this answer as an example)并配置每个作业以使用特定的JDK。

此外,您可以使用Java8 JDK完美地编译Java7项目。但是,我建议你不要这样做。实际上,如果在语言级别强制执行向后兼容性,您可能会发现一些API,其中您不知道的错误,但您使用的库已经知道,已经修复,创建了一些奇怪的行为。因此,您的Java7应用程序将使用Java8 JDK进行编译,但在运行时会暴露错误。解决这些错误将是一场噩梦般的噩梦(相信我,我的朋友,我在以前的普通公司遇到过那种恐怖事件)。

答案 1 :(得分:0)

您可以在计算机上使用多个jdk,但请记住将特定的jdk用于特定项目。如果已安装多个jdk,请仔细配置项目的POM文件。 Compiling Source Using Maven

或者您可以在作业配置的“构建环境”部分中更改JAVA_HOME,您可以为作业设置环境变量。虽然,您可以使用多个JDK,但它不是CI / CD中的好习惯。使用具有特定配置的特定机器。