概要
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あたり)を使うようにしようかなと思う。