gpt4 book ai didi

java - 在依赖于我自己的 Maven Artifact 的 Heroku 上部署 Java 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:26:26 24 4
gpt4 key购买 nike

Heroku 支持 deployment of Java apps based on Maven

他们也give advice如果需要一个公共(public) Maven 存储库中不可用的库,则用于应用程序部署

但是:我有两个 Maven 项目,其中一个依赖于另一个。当我在本地 mvn install 依赖 Artifact 时,我可以 mvn package 另一个,一切正常。但是,我无法将其推送到 heroku,因为 heroku 无法访问我的本地 mvn 存储库。

我能做什么?是否有必要在网络上设置一个可供 heroku 访问的私有(private) maven 存储库(例如 artifactory),或者是否有任何其他方法来部署这样一个自定义依赖于 heroku 的应用程序?

谢谢。

最佳答案

Heroku 有一个备用部署路径,称为 Anvil这可能会有所帮助。使用此路径,您将使用所需的任何私有(private)库和 copy all dependencies into your target directory 在本地构建所有内容。 ,然后使用 Anvil 构建整个内容并将其发布到您的 Heroku 应用程序。默认情况下,Anvil 会将您的应用程序检测为 Java 并尝试再次构建它,但您可以通过指定 null buildpack 来覆盖它。 ,它告诉它按原样获取您的文件,因为您已经在本地进行了构建。举个例子可能会更好:

  1. 安装铁砧:

    heroku 插件:安装 https://github.com/ddollar/heroku-anvil

  2. 克隆此示例应用程序,该应用程序已在其 pom.xml 中配置了 copy-dependencies。您需要在自己的应用中进行配置:

    git clone git://github.com/heroku/template-java-jaxrs.git

  3. 进入目录并构建将运行copy-dependencies 的应用程序。这很关键,因为您需要将所有依赖项放在应用程序的 target 目录中,而不是在 ~/.m2/repository 中,这样 Heroku 才能找到它们:

    mvn 包

  4. 创建 Heroku 应用:

    heroku 创建

  5. 使用 Anvil 构建空构建包并发布到应用:

    heroku build -b https://github.com/ryandotsmith/null-buildpack.git -r

关于java - 在依赖于我自己的 Maven Artifact 的 Heroku 上部署 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12062941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com