关于SpringBoot项目部署在服务器上的几种方式

前提是你的服务器已经安装了JDK,如果没装,请移步这篇文章:

Linux中JDK安装

此外服务器数据库要与项目的配置信息一致!!!(导致项目启动失败的重要原因)

注意服务器防火墙可能会拦截到你的项目启动端口(下面会讲怎么弄)

jar或者war包方式

第一步、本地IDE中使用maven插件打jar包
请确认pom文件是否有如下插件

<!--这个插件,可以将应用进行打包成一个可执行的jar包或war包-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--如果没有该项配置,devtools不会起作用,即应用不会restart -->
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>

或者打war包,请再确认pom是否有打成war包的以下packaging内容

	<groupId>com.ffw</groupId>
    <artifactId>springdemo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

然后依次执行maven的clean和package操作
在这里插入图片描述

或者使用maven命令,在终端(Terminal)执行以下命令

mvn clean package

也可以
此时你的target目录下应该已经多了一个jar或者war包

在这里插入图片描述

第二步,将jar包或war包移动到服务器

我选择Git方式移入,也可以选择其他方式(比如Xftp之类)
Git方式:前提是已经安装了Git,如果没有Git,可以参考这篇文章进行安装
Linux-Git安装
将本地项目传到远程仓库,在linux服务器中clone下来(此时要注意你的jar或者war包是否在git上传的远程仓库中)
因为我的git过滤了target下的文件,所以我新创了一个文件夹,并将war包放入其中再上传
在这里插入图片描述
此时服务器在某个目录下git clone 下来,就有了该包,进入该目录
在这里插入图片描述

第三步、执行jar/war包

nohup java -jar war包名/Jar包名 > logs.txt & 

比如我的就是执行如下命令,根据个人实际情况修改包名(-jar不要改)

nohup java -jar springdemo-1.0-SNAPSHOT.war > logs.txt &

此时该war包已经在后台运行,使用命令查看是否启动成功

ps -ef | grep java

在这里插入图片描述
可以看到10402端口已经在运行该jar包(并非项目启动的端口哦)

第四步、查看运行日志

jar/war包运行的同级目录下有一个logs.txt(就是运行时指定的日志文件)
使用命令查看运行日志

cat logs.txt

在这里插入图片描述
可以看到运行日志,服务器已经运行成功了,如果不成功,那就有可能是你的服务器数据库与项目的配置出现了问题,请检查服务器数据库和项目中的配置是否正确,再去检查能否外网访问页面
在这里插入图片描述
运行成功!!!
如果不行,请使用防火墙打开项目所需打开的端口,或者直接关闭防火墙
教程:CentOS对于防火墙的管理

第五步、关闭该jar/war包(可选)

在第三步中最后,我们可以看到是10402端口启动了该jar包(并非项目启动端口,项目启动端口默认8080,如果项目中配置了其他端口,也与此端口无关)
或者在logs.txt中,日志前面也可以看出两者的区别
在这里插入图片描述
那么如何关闭jar包呢?

kill -9 10402

其中10402是我的服务器占用的端口,请根据你自己的端口进行操作

发布了24 篇原创文章 · 获赞 2 · 访问量 3374

猜你喜欢

转载自blog.csdn.net/qq_17082829/article/details/104477323