一:打开idea的terminal(alt+f12),执行命令:mvn clean package -Dmaven.test.skip=true
这样在你的项目的target目录下出现一个jar包,就是你打的包。
二:将这个jar包上传到linux系统上,具体怎么上传请另搜,这里不作介绍。
例如:我上传在/dev/app/这个目录下,我的包叫girl-0.0.1-SNAPSHOT.jar(版本号和名称跟你pom.xml中写的有关系);
java -jar /dev/app/girl-0.0.1-SNAPSHOT.jar,就会启动成功(linux安装jdk,并且环境变量设置ok),这个只能这样占用界面运行。一旦退出,项目也就终止了;
用下面的命令可以实现后台运行,日志输出
nohup java -jar /dev/app/girl-0.0.1-SNAPSHOT.jar > 日志文件名.log 2>&1 &
命令详解:
nohup:不挂断地运行命令,退出帐户之后继续运行相应的进程。
>日志文件名.log:是nohup把command的输出重定向到当前目录的指定的“日志文件名.log”文件中,即输出内容不打印到屏幕上,而是输出到”日志文件名.log”文件中。不指定文件名会在当前目录创建nohup.out,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
2>&1:2就是标准错误,1是标准输出,该命令相当于把标准错误重定向到标准输出么。这里&相当于标准错误等效于标准输出,即把标准错误和标准输出同时输出到指定的“日志文件名.log”文件中。
java -jar 自己的springboot项目.jar:执行springboot的项目,如果单单只执行该命令,linux只会短暂的运行该项目,当退出控制台后会自动关闭该项目。
最后的&:让改作业在后台运行。
三:访问
postman进行访问:我只是简单的返回了数据库的数据
http://linux服务器ip:自己配的端口号(没配的话默认是tomcat的8080)/url名称。
要注意的几点:
1.如果访问接口不通的话,
注意给服务器添加该项目的端口号,linux默认打开的只有22
vi /etc/sysconfig/iptables
给这一行下面加同样的内容,把22改成项目的端口就行(我的是8081),
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
保存。重新启动防火墙:执行命令 /sbin/service iptables restart
2.如果日志中报数据库连接错误的话,因为我是windows开发,数据库也在windows,所以数据库连接写的127.0.0.1:5432,这个打包之前一定得更改成本机windows的ip(打开cmd,ip config找到本机ip),因为项目在linux上,127.0.0.1代表本机,发现linux并没有安装数据库,就会报错。
修改好之后重新打包,部署,启动,这样就可以访问。我也是刚调试通。