idea打包项目、部署到服务器上、linux安装redis
不知不觉也研二了,准备好好经营一下博客,把一些踩过的坑记录一下。
一、 idea打包
有两种方式,第一种是idea自带的打包,第二种是利用maven打包。
但是我用第一种总是会提示找不到主类,于是放弃选择了第二种。之后可能会尝试第一种再写个详细点的过程吧。参考这个博客。
- 在pom.xml文件添加依赖
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
2.在idea右边点击maven-clean-compile-package。还可以install一下防止意外
3. 打包后会在target文件夹下生成两个文件,这就是我们的代码部分
4.接下来修改配置文件和数据文件
在配置文件application.properties中将端口号改成你需要的,等下要在服务器上打开这个端口(我这里没改),地址改成服务器ip地址如192.55.56.3之类的
再将系统根目录改成你将要上传到服务器上的路径,防止找不到数据文件夹
这样配置文件就修改好了
最后需要的是这四个文件:
二、 部署在服务器
1.如上图所示,上传那四个文件到你自己指定的文件夹,注意要和配置文件里的路径一致
2.打开控制台确认jkd版本和自己项目一致
java -version
javac -version
如果版本不对需要安装,那就需要服务器的root权限,具体教程网上找吧。
2.打开项目运行需要的端口
此操作也需要root权限,如果有了,可以输入
sudo su
进入root权限,然后按下述代码确认防火墙状态和端口状态,PS:我的一开始端口没打开不是防火墙问题,但还是记录一下防止下次遇到
systemctl status firewalld 查看防火墙状态
systemctl start firewalld 打开防火墙
systemctl stop firewalld 关闭防火墙
最好不要关闭防火墙,有危险,此操作只是帮助确认是不是防火墙限制了端口打开
firewall-cmd --zone=public --add-port=8081/tcp --permanent 打开指定端口
firewall-cmd --zone=public --remove-port=8081/tcp --permanent 移除指定端口
firewall-cmd --zone=public --list-ports 查看已开放的端口
确定自己需要的端口打开之后即可启动项目了
3.启动项目
进入jar包所在目录,启动进程
nohup java -jar data-collect-proof-audit-0.0.1-SNAPSHOT.jar > dutyDocument.out 2>&1 &
打印日志:
cat dutyDocument.out
日志比较慢,等项目启动再打印即可看到正在运行的日志内容了
查看Java进程
ps -ef | grep java
杀死进程
kill 进程号
杀死之后可以再次查看,确认已经结束进程
4.遇到的问题
问题:8081端口打开之后再次查询8081端口状态却显示未开启,重新打开又显示已经开启。
解决:查看了这个博客但是我的无法解决,我不是防火墙的问题。我的问题原因是配置文件里没有修改地址为服务器IP地址。
三、安装redis
这里是我项目需要使用redis,不需要的话可以无视。主要是需要root权限,我这里将redis安装在自己的目录下,但是启动不了,最后解决了。安装教程和解决方法如下。
安装教程1
安装教程2
不行的话就多找几个,网上很多教程
我这里还对配置文件redis.conf做了修改:将daemonize no 改成daemonize yes ,这样可以后台启动。
如果你安装在自己的路径而不是系统路径usr/local/bin,那么需要复制redis下存有服务端、客户端等redis服务的文件夹(我这里是/home/wtt/local/redis/redis_6.2.6/src)的内容到系统路径。
到此输入redis-server 或 redis-server&即可启动redis。总体来说没有遇到大问题真是太好了。
常用代码记录:
ps -ef |grep redis 检测进程是否存在
netstat -lntp | grep 6379 检测6379(redis监听端口)是否在监听
redis-server 启动redis
redis-server& 以后台应用启动redis
pkill redis 停止redis