Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以指定在将Java应用程序部署到Heroku Cedar堆栈时使用哪个版本的Maven吗?_Java_Maven_Heroku - Fatal编程技术网

我可以指定在将Java应用程序部署到Heroku Cedar堆栈时使用哪个版本的Maven吗?

我可以指定在将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

我正在部署一个需要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错误引起的:

有没有办法配置Heroku Cedar以使用不同版本的Maven?

将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的说明。

只要您创建自己的构建包,就可以这样做。看看我是如何使用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文档,了解如何使用自定义构建包的说明