前提是你的服务器已经安装了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是我的服务器占用的端口,请根据你自己的端口进行操作