好,这里是“教你1秒将本地SpringBoot项目jar包部署到Linux环境(超详细!)”的完整攻略。
1. 前置条件
在开始操作前,需要准备好以下环境:
- 一台Linux服务器,能够连接到互联网,并且已经安装好了Java运行环境(JRE 或 JDK)。
- 一份SpringBoot应用程序代码,在本地环境已经编译为可运行的jar包。
本教程中的示例代码可以在我的Github仓库中获取:https://github.com/johnsmith-zhang/springboot-demo。
2. 将应用程序jar包上传到服务器
将本地编译好的应用程序jar包上传到服务器的任意一个路径下,例如 /home/user/
。可以使用 SCP 命令或其他远程传输工具来完成上传。
示例命令:
scp /path/to/your/app.jar user@your.server:/home/user/
这里的 user
是目标服务器的用户名,your.server
是服务器的地址,/path/to/your/app.jar
是本地的应用程序jar包的路径。在输入命令时需要确保本地电脑已经可以连接到服务器,并且拥有对应的权限。
3. 在服务器上启动应用程序
基于上传好的应用程序jar包,在服务器上启动应用程序的操作相对简单。只需要在上传jar包的目录下,运行如下命令:
java -jar app.jar
这里的 app.jar
是您上传到服务器上的应用程序jar包的名称。在执行命令之前,需要确保你已经切换到对应的上传目录下。
如果您的应用程序是用 Gradle 或 Maven 构建的,那么您可以使用相应的打包命令来在本地生成可运行的jar包。
Gradle 打包命令:
./gradlew bootJar
Maven 打包命令:
mvn package
执行完成后,可以在项目的 build/libs
或 target
目录下找到生成好的jar包。
4. 绑定应用程序端口
在默认情况下,SpringBoot应用程序使用的是8080端口。如果你想要使用其他的端口,需要在运行jar包时指定对应的端口,例如:
java -jar app.jar --server.port=8888
这里的 8888
是指绑定的端口号。这个值可以根据您的实际需求来进行修改。
5. 用systemd配置服务
在Linux服务器中,可以使用systemd
来配置系统服务。systemd
是一个初始化进程,它是 Linux 初始化的第一个进程。
为了让 SpringBoot 应用程序在服务器启动时自动运行,我们可以使用 systemd
来配置应用程序服务。以下是具体的步骤:
- 在
/etc/systemd/system/
目录下创建应用程序服务。
sudo vim /etc/systemd/system/app.service
- 在服务文件中添加以下内容:
[Unit]
Description=Name of your application
[Service]
User=your-user
WorkingDirectory=/home/your-user
ExecStart=/usr/bin/java -jar /home/your-user/app.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
这里的 Name of your application
是您的应用程序的名称。your-user
是您在服务器上的用户名。在 ExecStart
行中,需要将 /home/your-user/app.jar
替换为您上传到服务器的应用程序jar包的实际路径。
- 启动和设置应用程序服务。
sudo systemctl daemon-reload
sudo systemctl enable app.service
sudo systemctl start app.service
这些命令将会重新读取你的 systemd 配置并启动应用服务。如果您想停止您的应用程序,可以运行以下命令:
sudo systemctl stop app.service
6. 示例
示例一
假设你的应用程序名为 myspringbootapp
,已经上传至服务器的 /home/user
目录下,你的用户名是 user
。
- 上传应用程序jar包到服务器上。
scp /path/to/myspringbootapp.jar user@your.server.com:/home/user/
- 在服务器上运行应用程序。
cd /home/user
java -jar myspringbootapp.jar
如果您希望绑定其他的端口号,可以使用如下命令:
java -jar myspringbootapp.jar --server.port=8081
- 配置服务。
sudo vim /etc/systemd/system/myspringbootapp.service
在这里,你可以根据上面的例子来编辑服务文件。假设你的服务文件的路径为 /etc/systemd/system/myspringbootapp.service
。
[Unit]
Description=MySpringBootApp
[Service]
User=user
WorkingDirectory=/home/user
ExecStart=/usr/bin/java -jar /home/user/myspringbootapp.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
- 启动和设置应用程序服务。
sudo systemctl daemon-reload
sudo systemctl enable myspringbootapp.service
sudo systemctl start myspringbootapp.service
示例二
假设你的应用程序名为 myfirstspringbootapp
,已经上传至服务器的 /home/user
目录下,你的用户名是 user
。
- 上传应用程序jar包到服务器上。
scp /path/to/myfirstspringbootapp.jar user@your.server.com:/home/user/
- 在服务器上运行应用程序。
cd /home/user
java -jar myfirstspringbootapp.jar
如果您希望绑定其他的端口号,可以使用如下命令:
java -jar myfirstspringbootapp.jar --server.port=8081
- 配置服务。
sudo vim /etc/systemd/system/myfirstspringbootapp.service
在这里,你可以根据上面的例子来编辑服务文件。假设你的服务文件的路径为 /etc/systemd/system/myfirstspringbootapp.service
。
[Unit]
Description=MyFirstSpringBootApp
[Service]
User=user
WorkingDirectory=/home/user
ExecStart=/usr/bin/java -jar /home/user/myfirstspringbootapp.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
- 启动和设置应用程序服务。
sudo systemctl daemon-reload
sudo systemctl enable myfirstspringbootapp.service
sudo systemctl start myfirstspringbootapp.service
7. 总结
本教程讲解了如何将本地的 SpringBoot 应用程序部署到 Linux 环境中。具体而言,包括:
- 将应用程序jar包上传到服务器.
- 在服务器上启动应用程序.
- 绑定应用程序端口.
- 使用systemd配置服务.
- 基于两个示例讲解了上述过程,使大家可以更好理解。
如果你遇到了任何的问题或者疑问,可以在评论区留言提出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:教你1秒将本地SpringBoot项目jar包部署到Linux环境(超详细!) - Python技术站