1

GoCD を使用して継続的デリバリー パイプラインをテストしています。サーバーとエージェントは、Oracle Java 8 で提供される個別の Docker コンテナーに存在し
ます。Git リポジトリーをチェックアウトし、コンパイルに maven を使用するテスト・タスクをセットアップしました。テスト コマンドとして、単純なmvn clean build.

タスクを開始すると、次の失敗したビルド結果が得られます。

07:50:59.395 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project xxxxx: Compilation failure 07:50:59.395 [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

mvnコンテナ内でローカルにコマンドを実行すると、すべて正常に動作します。解決策を長い間探した後、Java および Maven 環境変数の問題に関するヒントを見つけました。両方のシステムで、これらの変数の出力は正しいようです。

go@d86b9572ed7e:/tmp$ echo $M2_HOME $JAVA_HOME /usr/share/maven /usr/lib/jvm/java-8-oracle

最終的な解決策$JAVA_HOMEは、パイプラインの設定として、変数を GoCD サーバーの環境変数として設定することです。その後、すべてが正常に機能しますが、システム変数がエージェントによって取得されない理由が本当にわかりません。

4

2 に答える 2

2

エージェントには、ジョブとタスクの実行に使用するプロファイルがあります。デフォルトの場所は次のとおりです: /etc/default/go-agent 追加

export JAVA_HOME="/usr/lib/jvm/java-8-oracle/"

このファイルに。

于 2015-09-06T08:16:09.147 に答える
2

パイプラインとステージで環境変数を指定することもできます。ステージに共通のテンプレートを使用する場合は、そこに JAVA_HOME を定義できます。

于 2015-11-17T22:25:34.340 に答える