我可以指定在将Java应用程序部署到Heroku Cedar堆栈时使用哪个版本的Maven吗?
我正在部署一个需要Maven 3.0.4到Heroku Cedar堆栈的应用程序,但构建失败,并出现以下警告:我可以指定在将Java应用程序部署到Heroku Cedar堆栈时使用哪个版本的Maven吗?,java,maven,heroku,Java,Maven,Heroku,我正在部署一个需要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 R
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错误引起的:
# 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的说明。只要您创建自己的构建包,就可以这样做。看看我是如何使用maven 3.0.4的 简而言之,我要做的是更改maven位置的uri,但也要更改目录结构,因为heroku one包含.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解压到.maven目录中,而不是作为maven 3.0.4目录根的apache-maven-3.0.4。不要忘记,您需要创建一个空的.m2目录来托管maven存储库
查看heroku文档,了解如何使用自定义构建包的说明