java - 将 Java .war 应用程序部署到 Heroku

标签 java deployment heroku war

<分区>

您知道有关将 java war 应用程序部署到 Heroku 的任何教程吗?

谢谢...

最佳答案

实际上,有时使用 Google 并没有多大帮助。在 heroku 上部署 Java war 很痛苦,而且概述的步骤也不是很好。

基本上,heroku 只运行纯 java 进程,因此您需要将 war 文件包装在主 java 文件中。本博文Deploy war on Heroku概述了一些步骤,您还需要引用 heroku's documentation真正弄清楚从 git 到 heroku 的最终推送。

以下是您需要遵循的步骤(我假设您有一个准备就绪的 war 文件)。

  1. 您需要从您的 war 文件构建您的 jar 文件,以便将 Jetty 嵌入其中,并且可以说它是一个可运行的 jar 文件。这是在第 2 步中完成的。
  2. 在您的 pom.xml 中创建您的 maven 应用程序汇编程序目标。博客文章和网络上的其他各个部分都包含一个示例片段。假设这称为 mywebapp.jar。 (必须是 jar )
  3. 现在您有了一个 war 文件,您需要创建一个主程序来加载这个 war 文件并创建一个 jetty 进程。请记住,heroku 只能运行 java 进程,因此您在这里将 jetty 作为直接进程调用。查看博客文章中的示例 - 例如调用此 StartWebApp.java。
  4. Heroku 需要一个简单的 procfile,它几乎是样板文件。例如:

web: sh target/bin/webapp

将所有内容上传到 git 存储库,以便您可以轻松推送到 heroku - 使用此目录结构:

pom.xml
Procfile
src/main/java/root - StartWebApp.java
src/main/resources - mywebapp.jar

在推送到 heroku 之后繁荣(假设你有一个 cedar 堆栈,所有设置都按照上面 heroku 的链接中的概述)。

git push heroku master

Herokuing 快乐。另外,正如您所知,这对于部署 war 来说太可笑了。如果您使用 heroku(作为付费客户),请提交功能请求以改进它。为您的平台创建一个运行器类是一个很大的禁忌。

关于java - 将 Java .war 应用程序部署到 Heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627297/

相关文章:

javascript - Heroku 无法运行 Node ES6 代码

java - 加载数据时显示 ProgressDialog 并返回 View

java - 如何将 HTML 转义字符从 JSP 转义为 Java

php - Drupal 部署/测试/不知道如何调用它工具

java - 无法在 Openshift v3 上部署基于 Java 的应用程序

angularjs - Heroku + MEAN 堆栈错误 : Parameter "url" must be a string, 未定义

java - Cursor.moveToNext 错误

java.lang.NoClassDefFoundError : org/springframework/web/context/ContextCleanupListener 错误

node.js - 如何在生产中运行 Node.js + Angular 4 项目

django - Gunicorn:停止服务器 'Worker failed to boot.'