部署到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文件?
答案 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。