Java 指定JDK';s版本在pom.xml或manifest.yml中?

Java 指定JDK';s版本在pom.xml或manifest.yml中?,java,maven,spring-boot,cloud-foundry,Java,Maven,Spring Boot,Cloud Foundry,我有一个java应用程序,我想将其部署到CloudFoundry。我想指定它的JDK版本。我搜索了一些文章,但我不知道在哪里做 在一些文章中,它说我需要使用java buildpack并在manifest.yml或cf命令中指定环境。e、 g 但也有人说,我可以在pom.xml中使用-source和-target属性指定JDK版本。e、 g 有谁能告诉我两者的区别以及我应该选择哪一个吗?您需要在应用程序manifest.yml文件中提供JRE版本 java buildpack当前支持JRE。假设

我有一个java应用程序,我想将其部署到CloudFoundry。我想指定它的JDK版本。我搜索了一些文章,但我不知道在哪里做

在一些文章中,它说我需要使用java buildpack并在manifest.yml或cf命令中指定环境。e、 g

但也有人说,我可以在pom.xml中使用-source和-target属性指定JDK版本。e、 g


有谁能告诉我两者的区别以及我应该选择哪一个吗?

您需要在应用程序
manifest.yml
文件中提供JRE版本

java buildpack当前支持JRE。假设您使用的是OpenJDK,JRE版本
1.6
1.7
1.8
受到buildpack的开箱即用支持

要设置JRE版本,只需在应用程序清单中指定一个环境变量,如下所示:

---
applications:
- name: my-java-app
  memory: 512M
  env:
    JBP_CONFIG_OPEN_JDK_JRE: '{ jre: { version: 1.8.0_+ } }'

java构建包不查看
pom.xml
文件。它假定您部署了应用程序的编译版本(例如JAR或WAR文件)。

您需要在应用程序
manifest.yml
文件中提供JRE版本

java buildpack当前支持JRE。假设您使用的是OpenJDK,JRE版本
1.6
1.7
1.8
受到buildpack的开箱即用支持

要设置JRE版本,只需在应用程序清单中指定一个环境变量,如下所示:

---
applications:
- name: my-java-app
  memory: 512M
  env:
    JBP_CONFIG_OPEN_JDK_JRE: '{ jre: { version: 1.8.0_+ } }'

java构建包不查看
pom.xml
文件。它假设您部署了应用程序的编译版本(例如JAR或WAR文件)。

多亏了本文中的一些评论,我才能够使用pcf CLI中的这个命令在pcf中设置目标jdk

$ cf set-env <app-name> JBP_CONFIG_OPEN_JDK_JRE '{ jre: { version: 11.0.6_10 } }
$cf set env JBP_CONFIG_OPEN_JDK_JRE'{JRE:{version:11.0.6_10}

多亏了本文中的一些评论,我才能够使用pcf CLI中的这个命令在pcf中设置目标jdk

$ cf set-env <app-name> JBP_CONFIG_OPEN_JDK_JRE '{ jre: { version: 11.0.6_10 } }
$cf set env JBP_CONFIG_OPEN_JDK_JRE'{JRE:{version:11.0.6_10}

您的
pom.xml
中的设置仅仅是
javac
编译器在编译期间使用的值,它与您尝试部署到的任何地方都完全无关。
pom.xml
中的设置仅仅是
javac
编译器在编译期间使用的值,它与您尝试部署到的位置完全无关。注意:1.)除非您有很好的理由,否则不应该将JDK的版本设置为由构建包安装。通常,构建包将安装最新版本的软件。这是关于构建包和自动升级的一件好事。如果选择JDK的特定版本,如1.8.0131,则不会获得额外的更新。你被冻住了。如果您在末尾使用
+
,如本例所示(特定于Java BP),您将获得次要版本的更新。这稍微好一点,但通常不应该干预。2)在manifest.yml中设置JDK的版本与使用
cf set env JBP_CONFIG_OPEN_JDK_JRE'{JRE:{version:1.8.0_+}}
没有什么不同。它们都在设置一个环境变量,Java构建包将根据该变量确定要安装的版本。注意两点:1。)除非您有很好的理由,否则不应该将JDK的版本设置为由构建包安装。通常,构建包将安装最新版本的软件。这是关于构建包和自动升级的一件好事。如果选择JDK的特定版本,如1.8.0131,则不会获得额外的更新。你被冻住了。如果您在末尾使用
+
,如本例所示(特定于Java BP),您将获得次要版本的更新。这稍微好一点,但通常不应该干预。2)在manifest.yml中设置JDK的版本与使用
cf set env JBP_CONFIG_OPEN_JDK_JRE'{JRE:{version:1.8.0_+}}
没有什么不同。它们都设置了一个环境变量,Java构建包将根据该变量确定要安装的版本。