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 サーバーの環境変数として設定することです。その後、すべてが正常に機能しますが、システム変数がエージェントによって取得されない理由が本当にわかりません。