--- title: Cloud FoundryのJava BuildpackでJava 11を使う tags: ["Cloud Foundry", "Java", "Java SE 11", "Docker"] categories: ["Dev", "PaaS", "CloudFoundry"] date: 2018-10-04T05:42:52Z updated: 2018-10-04T05:42:52Z --- [Java Buildpack v4.16](https://github.com/cloudfoundry/java-buildpack/releases/tag/v4.16)でJava 11がサポートされたので使ってみます。 当面はJava8がデフォルトで使用されますが、 JREのバージョンは環境変数`JBP_CONFIG_OPEN_JDK_JRE`で指定可能です。 ``` yml applications: - name: hello-java11 buildpacks: # cf buildpacksでbuildpack一覧を確認してjava_buildpackのバージョンが4.16以上であれば設定不要 - https://github.com/cloudfoundry/java-buildpack.git#v4.16 path: target/demo-java11-0.0.1-SNAPSHOT.jar memory: 1g env: JBP_CONFIG_OPEN_JDK_JRE: '{ jre: { version: 11.+}}' ``` これで`cf push`すれば、Staging中に次のようなログが出力されます。11.0.0_28が使われていることがわかります。 ``` 2018-10-04T14:31:43.11+0900 [STG/0] OUT -----> Java Buildpack v4.16 | https://github.com/cloudfoundry/java-buildpack.git#3552cb1 2018-10-04T14:31:43.30+0900 [STG/0] OUT -----> Downloading Jvmkill Agent 1.16.0_RELEASE from https://java-buildpack.cloudfoundry.org/jvmkill/trusty/x86_64/jvmkill-1.16.0_RELEASE.so (found in cache) 2018-10-04T14:31:43.38+0900 [STG/0] OUT -----> Downloading Open Jdk JRE 11.0.0_28 from https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-11.0.0_28.tar.gz (found in cache) 2018-10-04T14:31:44.47+0900 [STG/0] OUT Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.0s) 2018-10-04T14:31:44.47+0900 [STG/0] OUT JVM DNS caching disabled in lieu of BOSH DNS caching 2018-10-04T14:31:44.50+0900 [STG/0] OUT -----> Downloading Open JDK Like Memory Calculator 3.13.0_RELEASE from https://java-buildpack.cloudfoundry.org/memory-calculator/trusty/x86_64/memory-calculator-3.13.0_RELEASE.tar.gz (found in cache) 2018-10-04T14:31:44.76+0900 [STG/0] OUT Loaded Classes: 18647, Threads: 250 2018-10-04T14:31:44.80+0900 [STG/0] OUT -----> Downloading Client Certificate Mapper 1.8.0_RELEASE from https://java-buildpack.cloudfoundry.org/client-certificate-mapper/client-certificate-mapper-1.8.0_RELEASE.jar (found in cache) 2018-10-04T14:31:44.83+0900 [STG/0] OUT -----> Downloading Container Security Provider 1.16.0_RELEASE from https://java-buildpack.cloudfoundry.org/container-security-provider/container-security-provider-1.16.0_RELEASE.jar (found in cache) 2018-10-04T14:31:44.85+0900 [STG/0] OUT -----> Downloading Spring Auto Reconfiguration 2.5.0_RELEASE from https://java-buildpack.cloudfoundry.org/auto-reconfiguration/auto-reconfiguration-2.5.0_RELEASE.jar (found in cache) ``` ちなみに、Dockerを使えば、開発端末にJDK 11がインストールされていない状態でJDK 11を使ってアプリケーションをビルドできます。 ``` docker run --rm \ -v ~/.m2:/root/.m2 \ -v "$PWD":/usr/src \ -w /usr/src \ maven:3-jdk-11 \ mvn clean package ``` サンプルアプリは[こちら](https://github.com/making/demo-java11)です。 どんどんJava 11を使って行きましょう。