其中,使用了Maven项目管理工具
我的Linux发行版是CentOS 7 ,是阿里云服务器
学生“在线实践”计划,学生可以免费领6个月服务器—其实学生购买服务器也不贵,建议弄一个玩玩
Linux操作(1)基本操作 - 远程登录与用户管理
我们知道SpringBoot内置了Tomcat,只需要打包成jar文件,在Linux上运行即可
如果是使用Maven管理项目,可以直接通过Maven打包,点击右边Maven Projects
,双击package就会自动打包
(Windows也可以使用cmd命令去Maven文件夹下打包)
可能会出现这个问题:
Running com.myblog.blog.BlogApplicationTests
Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 0.002 sec <<< FAILURE! - in com.myblog.blog.BlogApplicationTests
initializationError(com.myblog.blog.BlogApplicationTests) Time elapsed: 0.001 sec <<< ERROR!
java.lang.Exception: The class com.myblog.blog.BlogApplicationTests is not public.
导致打包失败
这是Maven中少了maven-surefire-plugin组件
在build - > plugins标签下加上
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
去你的项目下的target文件夹下可以找到jar文件,如我的地址是D:\JavaProject\blog\SpringBootBlog\target\blog-0.0.1-SNAPSHOT.jar
把这个jar包传输到Linux下
把jar包放到你想要运行的目录下
你需要在Linux下安装了jdk(需要运行jar项目)
注意:你的数据库是否放入了Linux中
毕竟SpringBoot在运行阶段就会校验数据库连接
点击配置规则
点击快速创建规则,需要改3个地方:
8080/8080安全组端口号(3306是Mysql服务器的端口号)
1优先级:优先级越小越高
0.0.0.0/0授权对象:允许所有IP访问
ok,设置好了优先级
运行jar项目:java -jar 项目名
springboot的图标就出来了(我把springboot图标改成NO BUG了)
运行可能会报错:
o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured.
8080端口被占了
先检测一下端口号:netstat -tunlp |grep 8080
有一个进程占了我的8080端口
可以杀死这个进程:kill -9 2814
-9是强制杀死这个进程,2814是占了我端口的进程号
再运行一次
ok,运行成功,通过公网IP访问一下项目(要是无法访问可能是防火墙的问题iptables、firewall)
但问题就是,当我们退出时,SpringBoot就退出了
而我们想要的效果是,云服务器后台持续运行服务器
可以写一个shell脚步完成
vim startup.sh
命令就两行,第一行运行的时候不是注释,是指此脚本使用/bin/sh来解释执行,是解释器解释
第二行写自己jar文件的地址,我的是/opt/blog/blog-0.0.1-SNAPSHOT.jar
#!/bin/sh
nohup java -jar /opt/blog/blog-0.0.1-SNAPSHOT.jar &
脚本编写完后,初始是没有运行权限的,还有设置权限chmod +x startup.sh
赋予可执行权限
在运行shell脚本./startup.sh
再把Xshell关闭也可以使用SpringBoot中的项目
项目最终还是要去部署到Linux下
还有,欢迎大家来我的个人博客参观