Java 8 Bluemix devops构建管道是否支持java 8应用程序?
考虑到支持Java8的Bluemix。 要在IBMBluesmix构建管道(jazzhub构建和部署)中编译Java8应用程序,我需要做什么 我已经设置了java8环境变量,并使用以下方法重新启动了应用程序: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重新设置 我使用的特定的“构建器类
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