将Java应用程序部署到Heroku结果在jackson-mapper-asl Maven错误中

时间:2012-10-05 04:16:28

标签: maven heroku jackson

部署到heroku时的确切maven错误消息是:

No versions available for org.codehaus.jackson:jackson-mapper-asl:jar:[1.9,1.9.9] within specified range

我认为该问题与此answer和此杰克逊资源库maven-metadata.xml bug有关。

maven部署日志中的以下条目表示正在从heroku maven存储库下载jackson-mapper-asl 1.9.9:

Downloaded: http://s3pository.heroku.com/jvm/org/codehaus/jackson/jackson-mapper-asl/1.9.9/jackson-mapper-asl-1.9.9.pom (2 KB at 12.3 KB/sec)

jackson maven-metadata.xml file的heroku版本使用的版本号不正确 - 在使用版本范围时导致maven错误。

有没有办法在部署时告诉heroku使用不同的maven存储库来实现这种依赖?更好的是,有没有办法修复heroku jackson-mapper-asl maven-metadata.xml文件?

2 个答案:

答案 0 :(得分:0)

this可以作为解决方法吗?您可以只使用存储库配置部分并指向其他位置或自己提供文件,就像使用自定义项目一样。

无论如何,你可以做到。在pom.xml中定义常规存储库,这里是中央存储库:

<repositories>
  <repository>
    <id>central</id>
    <name>Maven Repository Switchboard</name>
    <layout>default</layout>
    <url>http://repo1.maven.org/maven2</url>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>

在pom.xml中定义一个指向本地“repo”项的存储库,该项仅存在于应用程序部署中:

<repositories>
    <!--other repositories if any-->
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/repo</url>
    </repository>
</repositories>

在任何情况下,您都应该联系Heroku支持。

答案 1 :(得分:0)

跟进我联系了Heroku支持(超级帮助,BTW),他们发现Heroku Maven缓存不仅仅是杰克逊无效。 Heroku支持启动了帮助解决问题的更新过程,但没有完全修复它。为了完全解决这个问题,我必须在我的pom.xml中为jackson-mapper-asl 1.9.9添加一个显式依赖项,然后才能将我的应用程序部署到Heroku。