在做之前我需要确保一件事,所以我还没有测试过我建议的解决方案。
我有Jenkins
,其中一个项目使用JDK 7
与目标Java 7
进行编译。我有一个用Java 8
编写的新项目,我想将它添加到我的Jenkins
中,以便它也可以构建它。
因此,我需要在机器上安装JDK 8
。我知道我们可以在每个项目的pom中指定java编译器版本,但我担心这一点:一旦我安装了JDK 8
,我的Java 7
项目仍然可以用{JDK 8
进行编译1}?我应该在机器上安装两个JDK
,并为每个项目配置一个能够找到自己JDK
的项目吗?或者我的Java 7
项目是否可以使用Java 7
在JDK 8
中汇编?
感谢您的帮助。
答案 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中的好习惯。使用具有特定配置的特定机器。