use*_*303 6 java deployment heroku artifactory maven
Heroku支持基于Maven部署Java应用程序
如果需要在公共maven存储库中不可用的lib,它们还会为应用程序部署提供建议
但是:我有两个Maven项目,其中一个依赖于另一个.当我在本地mvn安装依赖工件时,我可以mvn打包另一个,一切正常.但是,我无法将其推送到heroku,因为heroku无法访问我当地的mvn repo.
我能做什么?是否有必要在网络上设置一个可以通过heroku访问的私有maven仓库(例如神器),还是有其他方法来部署这样一个具有自定义依赖heroku的应用程序?
谢谢.
Heroku 有一个名为Anvil的备用部署路径,可能会有所帮助。使用此路径,您可以使用所需的任何私有库在本地构建所有内容,并将所有依赖项复制到目标目录中,然后使用 Anvil 构建整个内容并将其发布到您的 Heroku 应用程序。默认情况下,Anvil 会将您的应用程序检测为 Java 并尝试再次构建它,但您可以通过指定null buildpack来覆盖它,这会告诉它按原样获取您的文件,因为您已经在本地进行了构建。通过一个例子可能可以更好地展示这一点:
安装砧座:
heroku plugins:install https://github.com/ddollar/heroku-anvil
克隆此示例应用程序,该应用程序已copy-dependencies在其pom.xml. 您需要在自己的应用程序中进行配置:
git clone git://github.com/heroku/template-java-jaxrs.git
进入目录并构建应用程序,它将运行copy-dependencies。这很重要,因为您需要将所有依赖项放在应用程序的target目录中,而不是放在~/.m2/repositoryHeroku 中才能找到它们:
mvn package
创建 Heroku 应用程序:
heroku create
使用 Anvil 使用 null buildpack 进行构建并发布到应用程序:
heroku build -b https://github.com/ryandotsmith/null-buildpack.git -r