AWS CodeBuild でMaven Wrapperが使えない #AWS初心者

概要

AWS CodeBuildで提供されているJavaビルド環境( aws/codebuild/java:openjdk-8 )ではMaven Wrapperがエラーなってしまう。

Mavenはイメージに含まれているのでそれをそのまま使うか、別イメージを利用する必要がありそう。

詳細

CIツールとしてCodeBuildを使ってみようとしていたのだが、ビルドがエラーになってしまった。

[ERROR] Unknown lifecycle phase "/root/.m2". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>.

ビルゴ環境はAWSが提供している aws/codebuild/java:openjdk-8 を使用しており、buildspec.ymlは下記の通り(抜粋)。

build:
  commands:
    - echo Build started on `date`
    - ./mvnw clean install

ログを頼りに調べてみると下記のような情報が。

https://issues.jenkins-ci.org/browse/JENKINS-47890

イメージの中身まで正確に確認したわけではないけど、Maven Wrapperの使っている環境変数MAVEN_CONFIG)に別の値が設定されているとエラーになってしまう模様。

公式のサンプルのようにMavenコマンドを使うよう( mvn clean install )にしたらビルドは成功した。

ただ折角Javaだけで動作できるようにMaven Wrapperを入れているので、別のイメージ(DockerHubのOpenJDKあたり)を使うようにしようかなと思う。