2

Maven 3.0.4 を必要とするアプリケーションを Heroku Cedar スタックにデプロイしていますが、ビルドは次の警告で失敗します。

Rule 1: org.apache.maven.plugins.enforcer.RequireMavenVersion failed with message:
Build with Maven 3.0.4 or later. Maven 3.0 through 3.0.3 inclusive do not pass 
correct settings.xml to Maven Release Plugin.

この失敗は、次の Maven バグが原因であると考えています。

別のバージョンの Maven を使用するように Heroku Cedar を構成する方法はありますか?

4

2 に答える 2

5

Heroku Java Buildpack git リポジトリをフォークし、クローンします。

エディターでbin/compileを開きます。次の行を探します。

# install maven with base repository
MAVEN_URL="http://s3.amazonaws.com/heroku-jvm-langpack-java/maven.tar.gz"

if [ ! -d .maven ]; then
  echo -n "-----> Installing Maven 3.0.3..."
  curl --silent --max-time 60 --location $MAVEN_URL | tar xz
  chmod +x .maven/bin/mvn
  echo " done"
fi

MAVEN_URL を変更して、Apache から Maven 3.0.4 をダウンロードします。

MAVEN_URL="http://www.us.apache.org/dist/maven/maven-3/3.0.4/binaries/apache-maven-3.0.4-bin.tar.gz"

変更をコミットし、カスタム ビルドパックを使用するように Heroku Cedar インスタンスを構成します。

heroku config:add BUILDPACK_URL=[YOUR GITHUB REPO] --app [YOUR HEROKU CEDAR APP]

詳細については、Heroku の手順Using a Custom Buildpack を参照してください。

于 2012-11-03T19:39:43.133 に答える
3

独自のビルド パックを作成する限り、それを行うことができます。https://github.com/jtzikas/heroku-buildpack-javaで maven 3.0.4 を使用するために私が行ったことを見てください。

要するに、私がしなければならなかったのは、maven の場所の uri を変更するだけでなく、heroku には .m2 と .maven ディレクトリが含まれているため、ディレクトリ構造も変更することでした。これらのディレクトリは、残りのスクリプトを実行するために必要です。

# install maven without base repository
MAVEN_URL="http://www.us.apache.org/dist/maven/maven-3/3.0.4/binaries/apache-maven-3.0.4-bin.tar.gz"

if [ ! -d .maven ]; then
  echo -n "-----> Installing Maven 3.0.4..."
  curl --silent --max-time 60 --location $MAVEN_URL | tar xz
  mv apache-maven-3.0.4 .maven
  mkdir .m2
  chmod +x .maven/bin/mvn
  echo " done"
fi

.m2 ディレクトリはリポジトリの場所で、.maven ディレクトリは maven インストールの場所です。maven 3.0.4 のディレクトリのルートである apache-maven-3.0.4 ではなく、maven 3.0.4 を .maven ディレクトリに抽出する必要があります。Maven リポジトリをホストするには、空の .m2 ディレクトリを作成する必要があることを忘れないでください。

カスタム ビルドパックの使用方法については、heroku のドキュメントを参照してください。

于 2012-11-08T19:00:23.673 に答える