我对部署很陌生,我有一个jar文件作为包,该如何在我的生产服务器上进行部署?
我的生产服务器基本上是运行在AWS的EC2机器上
- 我应该只运行java - jar "jar文件"吗?这是生产服务器上的惯用方式吗?
- 我应该将.jar文件打包为ear/war并部署在tomcat/jboss服务器上吗?
感谢您的帮助!
我对部署很陌生,我有一个jar文件作为包,该如何在我的生产服务器上进行部署?
我的生产服务器基本上是运行在AWS的EC2机器上
感谢您的帮助!
你所描述的两种方法都是有效的。
对于在Linux服务器上包含自己应用程序服务器(例如Spark,Javalin,Spring Boot)的小型Web API,我会启动一个screen
会话并运行java -jar
。这使我可以退出SSH会话(从服务器断开连接)而不终止程序。
对于其他不包括应用程序服务器的Spring应用程序,我将代码打包成WAR文件并将其复制到应用程序服务器的部署目录中。对于Tomcat,那就是webapps
。然后应用程序服务器可以读取WAR文件并启动运行实例(假设启用了热部署)。
特别是Tomcat还有一个网页,您可以上传WAR文件以部署它。
nohup java -jar file.jar &
这基本上取决于您的偏好和您所在地区的通常标准。我们在Docker中提供的服务基本上在entry-point.sh
脚本的末尾有exec java -jar param param...
。您可以运行整个Tomcat等。
java -jar
就非常好用了——您可以使用嵌入式Tomcat并跳过安装专用应用程序服务器(或者更准确地说,Servlet容器)。在 Jboss 服务器中,第二种方法比第一种更受欢迎,因为可以通过控制台轻松完成各种操作。 您可以控制应用程序在服务器上的部署。 例如,如果您不想将 jar 部署到集群中的所有服务器上,也可以进行处理。