4

Java 8 がサポートされているという Bluemix の発表があるとします。Java 8 アプリを IBM Bluesmix ビルド パイプライン (jazzhub ビルドおよびデプロイ) でコンパイルするには、どうすればよいですか。

java8 環境変数を設定し、次を使用してアプリを再ステージングしました。

cf set-env <myApp> JBP_CONFIG_IBMJDK "version: 1.8.+"
cf restage <myApp>

私が使用している特定の「ビルダー タイプ」は「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
4

4 に答える 4

10

Java 8 を使用するには、ビルド シェル コマンドで 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
于 2015-05-26T16:42:02.207 に答える
1

また、Bluemix Jazz ビルド パイプラインで Java8 を使用したいと考えていました。変更するだけ$JAVA_HOMEではうまくいきませんでした。も更新する必要があり$PATHました。

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

その後、maven は java8 で実行されました。

于 2016-06-04T00:20:38.623 に答える
0

こんにちは、この解決策は私にはうまくいきません ここに私のビルドスクリプトがあります

#!/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

そして、「export」コマンドの後に JAVA_HOME が変更されていないことがわかるコンソール出力を次に示します。

Checking out Revision 86514c6dc277b6903fcd6f51ca7c97ea733b1d42 (detached)
[ba6eba91-33a3-4b67-8efd-48962cf063ba] $ /bin/bash /tmp/hudson7007424628517212775.sh
Java Home before /home/jenkins/java
Java Home after /home/jenkins/java
Base artifact directory /home/jenkins/workspace/e92a4db8-6702-d006-0cdc-2a827a4e78a5/ba6eba91-33a3-4b67-8efd-48962cf063ba/target does not exist or is not a valid directory.
[xUnit] [INFO] - Starting to record.
[xUnit] [INFO] - Processing JUnit
[xUnit] [INFO] - [JUnit] - No test report file(s) were found with the pattern 'target/surefire-reports/TEST-*.xml' relative to '/home/jenkins/workspace/e92a4db8-6702-d006-0cdc-2a827a4e78a5/ba6eba91-33a3-4b67-8efd-48962cf063ba' for the testing framework 'JUnit'.  Did you enter a pattern relative to the correct directory?  Did you generate the result report(s) for 'JUnit'?
[xUnit] [ERROR] - No test reports found for the metric 'JUnit' with the resolved pattern 'target/surefire-reports/TEST-*.xml'. Configuration error?.
[xUnit] [INFO] - There are errors when processing test results.
[xUnit] [INFO] - Skipping tests recording.
Finished: SUCCESS
于 2015-07-30T05:30:12.683 に答える
0

ビルド スクリプトで JAVA_HOME を /opt/IBM/java8 に設定すると機能することを確認できます (2016 年 5 月 4 日に試行)。

#!/bin/bash
 echo "Java home before: $JAVA_HOME"
 export JAVA_HOME=/opt/IBM/java8
 echo "Java home after: $JAVA_HOME"
 mvn -B package

これにより、次の出力が得られます。

Java home before: /opt/IBM/java
Java home after: /opt/IBM/java8

前に述べたように、デプロイ ステージでは、JBP_CONFIG_IBMJDK を「バージョン: 1.8.+」に設定する (cf set-env myApp JBP_CONFIG_IBMJDK "version: 1.8.+"または、manifest.yml の env: セクションの行) かbuildpack: java_buildpack、manifest.yml で定義する必要がある (私はそうしています) 必要があります。2015 年 5 月以降、java_buildpack は JDK8 を使用します。

最後に注意すべきことは、もちろん、pom.xml 内の maven-compiler-plugin のソース バージョンを変更することですが、これは 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>
于 2016-05-04T06:27:10.050 に答える