Java 8 Bluemix devops构建管道是否支持java 8应用程序?

Java 8 Bluemix devops构建管道是否支持java 8应用程序?,java-8,ibm-cloud,ibm-jazz,Java 8,Ibm Cloud,Ibm Jazz,考虑到支持Java8的Bluemix。 要在IBMBluesmix构建管道(jazzhub构建和部署)中编译Java8应用程序,我需要做什么 我已经设置了java8环境变量,并使用以下方法重新启动了应用程序: cf set-env <myApp> JBP_CONFIG_IBMJDK "version: 1.8.+" cf restage <myApp> cf set env JBP_CONFIG_IBMJDK“版本:1.8.+” cf重新设置 我使用的特定的“构建器类

考虑到支持Java8的Bluemix。 要在IBMBluesmix构建管道(jazzhub构建和部署)中编译Java8应用程序,我需要做什么

我已经设置了java8环境变量,并使用以下方法重新启动了应用程序:

cf set-env <myApp> JBP_CONFIG_IBMJDK "version: 1.8.+"
cf restage <myApp>
cf set env JBP_CONFIG_IBMJDK“版本:1.8.+”
cf重新设置
我使用的特定的“构建器类型”是“Maven”,我收到的失败是在java8中新的日期和时间类

[ERROR] <...>/services/TestHelperService.java:[3,17] package java.time does not exist
[ERROR] <...>/services/TestHelperService.java:[37,17] cannot find symbol
[ERROR] symbol:   class LocalDateTime
[ERROR] location: class <...>.services.TestHelperService
[ERROR]/services/TestHelperService.java:[3,17]包java.time不存在
[错误]/services/TestHelperService.java:[37,17]找不到符号
[错误]符号:类LocalDateTime
[错误]位置:class.services.TestHelperService

要使用Java 8,需要在build shell命令中更改Java_HOME环境变量:

export JAVA_HOME=~/java8
例如:

#!/bin/bash
#export JAVA_HOME=~/java8 - Bluemix have changed the java8 location
export JAVA_HOME=/opt/IBM/java8
mvn -B package

嗨,这个解决方案不适合我这里是我的构建脚本

#!/bin/bash
echo "Java Home before $JAVA_HOME"
export JAVA_HOME=~/java8
echo "Java Home after $JAVA_HOME"
#mvn -B package -DskipTests
#mvn -B package
这里是控制台输出,您可以看到JAVA_HOME在“export”命令之后没有被修改


我可以确认在构建脚本中将JAVA_HOME设置为/opt/IBM/java8确实有效(于2016年5月4日试用):

这将导致输出:

Java home before: /opt/IBM/java
Java home after: /opt/IBM/java8
如前所述,部署阶段必须将JBP_CONFIG_IBMJDK设置为“version:1.8.+”(
cf set env myApp JBP_CONFIG_IBMJDK”version:1.8.+“
或manifest.yml的env:section中的行),或者(我就是这么做的)您需要在manifest.yml中定义
buildpack:java_buildpack
。自2015年5月以来,java_buildpack使用JDK8

当然,最后要注意的是在pom.xml中更改maven编译器插件的源代码版本——但这不是特定于Bluemix的

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>(whatever version is current)</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

[...]
[...]
org.apache.maven.plugins
maven编译器插件
(无论当前版本如何)
1.8
1.8
[...]
[...]

我还想在Bluemix Jazz构建管道中使用Java8。仅仅更改
$JAVA_HOME
对我来说不起作用。我还必须更新
$PATH

export JAVA_HOME=/opt/IBM/java8
export PATH=$JAVA_HOME/bin:$PATH

在此之后,maven在java8上运行。

这与确保部署阶段有一个manifest.yml文件,该文件带有环境变量集,即“JBP_CONFIG_IBMJDK”版本:1.8.+“'
<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>(whatever version is current)</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>
export JAVA_HOME=/opt/IBM/java8
export PATH=$JAVA_HOME/bin:$PATH