gpt4 book ai didi

java - 如何在生产环境中运行 Spring Boot 可执行 jar?

转载 作者:IT老高 更新时间:2023-10-28 11:35:15 30 4
gpt4 key购买 nike

Spring boot 首选的部署方式是通过一个可执行的 jar 文件,里面包含 tomcat。

从一个简单的java -jar myapp.jar开始。

现在,我想将该 jar 部署到我在 EC2 上的 linux 服务器上,是我遗漏了什么还是我真的需要创建一个 init 脚本才能将应用程序作为守护程序正确启动?

如果我只是简单地调用 java -jar,应用程序会在我注销时死掉。

我可以在 screen 或 nohup 中启动它,但这不是很优雅,并且在我的服务器中重新启动会迫使我手动登录并启动该过程。

那么,在 Spring Boot 中是否已经有一些任务可以完成?

最佳答案

请注意,从 Spring Boot 1.3.0.M1 开始,您可以使用 Maven 和 Gradle 构建完全可执行的 jar。

对于 Maven,只需在 pom.xml 中包含以下内容:

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>

对于 Gradle,将以下代码段添加到您的 build.gradle:

springBoot {
executable = true
}

完全可执行的 jar 在文件的前面包含一个额外的脚本,它允许您将 Spring Boot jar 符号链接(symbolic link)到 init.d 或使用 systemd脚本。

init.d 示例:

$ln -s /var/yourapp/yourapp.jar /etc/init.d/yourapp

这允许您启动、停止和重新启动您的应用程序,例如:

$/etc/init.d/yourapp start|stop|restart

或者使用 systemd 脚本:

[Unit]
Description=yourapp
After=syslog.target

[Service]
ExecStart=/var/yourapp/yourapp.jar
User=yourapp
WorkingDirectory=/var/yourapp
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

更多信息请点击以下链接:

关于java - 如何在生产环境中运行 Spring Boot 可执行 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22886083/

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