Java 在生产环境中部署.jar文件的正确方法

Java 在生产环境中部署.jar文件的正确方法,java,spring,maven,Java,Spring,Maven,我是部署新手,我已经将jar文件作为一个包,我应该如何在我的prod服务器中进行部署 我的prod服务器基本上是一台运行在AWS上的EC2机器 我应该运行java-jar“jar文件”吗?这是prod服务器的惯用方法吗 我是否应该将.jar文件打包到ear/war并部署到tomcat/jboss服务器中 谢谢你的帮助 这基本上符合您的喜好和您所在地的常规标准。Docker中的服务基本上在entry point.sh脚本的末尾有exec java-jar param…。您可以运行整个Tomcat,

我是部署新手,我已经将jar文件作为一个包,我应该如何在我的prod服务器中进行部署

我的prod服务器基本上是一台运行在AWS上的EC2机器

  • 我应该运行java-jar“jar文件”吗?这是prod服务器的惯用方法吗
  • 我是否应该将.jar文件打包到ear/war并部署到tomcat/jboss服务器中

  • 谢谢你的帮助

    这基本上符合您的喜好和您所在地的常规标准。Docker中的服务基本上在
    entry point.sh
    脚本的末尾有
    exec java-jar param…
    。您可以运行整个Tomcat,等等。

    您描述的两种方法都是有效的

    对于在Linux服务器上包含自己的应用服务器(例如Spark、Javalin、Spring Boot)的小型web API,我启动
    屏幕
    会话并运行
    java-jar
    。这允许我在不终止程序的情况下退出SSH会话(断开与服务器的连接)

    对于不包括应用服务器的其他Spring应用程序,我将代码打包到WAR中,并将其复制到应用服务器的部署目录中。对于Tomcat来说,这就是
    webapps
    。然后,应用服务器可以读取WAR并启动正在运行的实例(假设启用了热部署)


    特别是Tomcat还有一个网页,您可以在其中上传WAR文件来部署它。

    如果您使用的是Spring Boot(这是一个好主意),那么
    java-jar
    非常好-您可以使用嵌入式Tomcat,而不必安装专用的应用程序服务器(或者准确地说,servlet容器).

    在Jboss服务器中,第二种方法优于第一种方法,因为可以通过控制台轻松完成任务。 您可以控制应用程序在服务器上的部署。
    如果您不想在集群的所有服务器上部署jar,那么可以考虑

    如果您希望,在Linux中断开SSH连接或关闭终端后,程序仍保持运行状态。您可以使用以下命令:

    nohup java -jar file.jar &
    

    不,我不想使用docker,我只是想知道将jar嵌入war/ear并部署在JBoss中是否是行业惯例。您还没有告诉我们您的程序是做什么的。如果它是一个应该一直运行的服务器,那么它的部署方式就不同于应该作为日常批处理作业运行的服务器,或者作为一个交互式工具。是的,它是一个服务器端代码API,必须一直运行,几乎没有数据来回答您的问题。您没有指定您可以使用的基础结构。例如,在prem服务器上部署到k8s、Elastic beanstalk等时,可以选择不同的选项并具有不同的约束。