有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Maven:使用JDK8编译Java7

在做之前我需要确保一件事,所以我还没有测试我将提出的解决方案

我有一个Jenkins,其中一个项目使用目标为Java 7JDK 7进行编译。我有一个用Java 8编写的新项目,我想把它添加到我的Jenkins中,让它也来构建它

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

谢谢你的帮助


共 (2) 个答案

  1. # 1 楼答案

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

    或者,您可以在作业配置的“构建环境”部分中更改JAVA_HOME,也可以为作业设置环境变量。尽管可以使用多个JDK,但在CI/CD中使用JDK并不是一种好的做法。使用具有特定配置的特定机器

  2. # 2 楼答案

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

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