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

时间:2012-03-09 00:36:41

标签: java deployment heroku war

你知道有关向Heroku部署java war app的任何教程,还是可以的?

...谢谢

3 个答案:

答案 0 :(得分:14)

实际上,有时使用Google实际上并没有那么多帮助。在heroku上部署Java war是一种痛苦,所概述的步骤并不是很好。

基本上heroku只运行普通的java进程,因此你需要将war文件包装在主java文件中。这篇博客文章Deploy war on Heroku概述了一些步骤,您还需要参考heroku's documentation来实际找出从git到heroku的最终推送。

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

  1. 您需要从war文件中构建jar文件,以便将Jetty嵌入其中,并且它是一个可运行的jar文件。这在第2步中完成。
  2. 在pom.xml中创建maven app汇编程序目标。博客文章中还有一个示例代码段,也包含在Web上的其他各个部分。假设这叫做mywebapp.jar。 (它必须是一个罐子)
  3. 现在你有一个war文件,你需要创建一个主程序来加载这个war文件并创建一个jetty进程。记住heroku只能运行java进程,所以你在这里调用jetty作为一个直接的过程。查看博客文章中的示例 - 例如,调用此StartWebApp.java。
  4. Heroku需要一个简单的proc文件,它几乎是样板文件。例如:
  5.   

    web:sh target / bin / webapp

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

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

    在推送到heroku之后的繁荣(假设你有一个雪松堆栈,如上面链接到heroku的链接所示)。

    git push heroku master
    

    快乐的herokuing。另外你可以说这对于部署战争来说太荒谬了。如果您使用heroku(作为付费客户),请提交功能请求以使其更好。为您的平台创建一个跑步者类是一个很大的禁忌。

答案 1 :(得分:3)

如果您想从Spring MVC Web App部署WAR文件,可以从我的博客中关注this post,其中有一步一步的说明。我在尝试并在Heroku上运行自己的应用程序后编写了它。

答案 2 :(得分:1)

在Heroku上你可以运行任何东西。所以你需要带上你自己的应用服务器。建议的方法是将其指定为构建描述符中的依赖项。然后上传您的应用程序并构建描述符,以便Heroku可以组装所有内容(依赖项和所有内容)。但最终由你决定如何将这些东西送到Heroku。