目录


1.maven打包jar

   首先需要把pom.xml的packaging标签设置为jar,packaging这个标签决定了使用maven快捷打包 是打包成war包还是jar,打包成war需要使用tomcat,而jar包不需要tomcat吗,但是需要jdk。

Linux上部署maven打包的jar_maven

在把需要打包的项目clear一下,把不需要的文件清理掉。

Linux上部署maven打包的jar_maven_02

在点击package把项目打包成你需要的包

Linux上部署maven打包的jar_maven_03

你会发现你项目会多一个target目录,里面就有打包的项目包。

Linux上部署maven打包的jar_redis_04

2.Linux上传maven包 和 activemq队列 和 redis缓存

我使用的是EditPlus连接linux客户端并且把文件上传到服务器。

Linux上部署maven打包的jar_jar_05

   我这个项目需要activemq队列所以把gz的安装包上传到linux中,jar包的上传也是这样。


回到linux控制台找到上传的目录并且通过tar把文件解压。

Linux上部署maven打包的jar_linux_06

Linux上部署maven打包的jar_redis_07

activemq启动分linux-x86-32和linux-x86-64进入对应的目录,我的是64位的

Linux上部署maven打包的jar_maven_08

进入后通过 ./activemq start 启动 (注意./ 后面不能有空格)

Linux上部署maven打包的jar_jar_09

Redis缓存上传:​ ​​下载同款​

验证码:p1xv

Linux上部署maven打包的jar_redis_10

解压:

tar -zxvf redis-3.2.8.tar.gz

Linux上部署maven打包的jar_maven_11

解压后进入到文件夹在输入make回车:前提需要有gcc环境

Linux上部署maven打包的jar_redis_12

这样就成功了

Linux上部署maven打包的jar_linux_13

进入到src下通过./redis-service 启动redis的服务端

Linux上部署maven打包的jar_redis_14

这样服务端就启动了,但是这个窗口就不能输入其他命令,能不能设置成后台运行redis呢?

Linux上部署maven打包的jar_maven_15

    可以看到如果我们启动redis服务的话,每次都要进入到安装目录,这样是不是很繁琐,所以我们将redis做成一个服务,我们直接启动。

首先将utils/redis_init_script文件复制到/etc/init.d下,同时易名为redis。执行命令

cp /usr/local/redis/redis-3.2.8/utils/redis_init_script /etc/rc.d/init.d/redis

Linux上部署maven打包的jar_redis_16

然后在执行命令,vi/etc/rc.d/init.d/redis,并在文档第二行添加# chkconfig: 2345 80 90。如果/usr/local/redis/bin中没有redis-server和redis-cli文件的话,我们要在我们的安装目录下复制一个过来。否则服务启动时找不到redis-server。下图第二个红框所示。并且在第三个$EXEC $CONF 后边加一个&,表示让redis作为后台服务启动,否则该服务会独占输入屏。

Linux上部署maven打包的jar_jar_17

然后进入到redis的src中把下面2个文件夹复制到指定的目录下,这个指定目录看上图第二个框框。

Linux上部署maven打包的jar_maven_18

可以看到在/etc/init.d/redis文件中有这么一行:CONF="/etc/redis/${REDISPORT}.conf"。于是将redis配置文件拷贝到/etc/redis/下 。

mkdir /etc/redis 

cp /usr/local/redis-3.0.2/redis.conf /etc/redis/6379.conff

Linux上部署maven打包的jar_maven_19

完成上面的操作之后,即可注册服务:

chkconfig --add redis

然后启动redis服务

service redis start

出现这个问题

Linux上部署maven打包的jar_redis_20

那么就删除就行

rm -rf /var/run/redis_6379.pid

我到这里就成功了:可以通过service redis start 启动

和 service redis stop 关闭

Linux上部署maven打包的jar_linux_21

这样我们就将redis服务注册好了,但是如果你测试一下service redis stop ,你会发现他提示/var/run/redis_6379.pid does not exist, process is not running 这说明在run下没有这个文件,我们进入到/var/run下发先真的没有这个文件,但是有redis.pid文件。

Linux上部署maven打包的jar_jar_22

我们我们要将/etc/rc.d/init.d/redis 文件中的redis_${REDISPORT}.pid修改为redis.pid。Linux上部署maven打包的jar_linux_23

这样我们重启服务后,在用该命令关闭就可以了。到这里我们的redis服务就安装好了,并做好了一个服务。

以上就是Linux下安装Redis的全过程,希望对大家安装Redis有所帮助。

3.使用nohup命令运行jar

回到上传jar包的目录通过命令:

java -jar 项目名称

Linux上部署maven打包的jar_redis_24

启动完成后会有端口号:我这里是8280

Linux上部署maven打包的jar_maven_25

本地访问是ip:8280 但是我的不能访问,有可能是linux端口没有打开。

注意:使用java -jar 项目名称 运行只要连接断开项目就不能访问,如何解决:可以通过

nohup : 后台启动​ log-$(date +%Y-%m-%d).log 2>&1 & :输出日志,日志位置会在jar包的目录中

nohup java -jar 项目名称 >>  log-$(date +%Y-%m-%d).log 2>&1 &

这样就运行成功!Linux上部署maven打包的jar_redis_26

补充:需要注意的是运行后日志文件是log-2021-12-06.log的格式,并且日志是在项目的同一目录显示,将来时间久了就会产生很多日志信息这样会运行我们查看其他文件,我们打算把日志存放到log文件夹中去

Linux上部署maven打包的jar_jar_27

我们只需要在命令前面添加目录:​​./log​

改造命令:​​nohup java -jar 项目名称 >> ./log/log-$(date +%Y-%m-%d).log 2>&1 &​

运行后日志就创建在了log目录里面

Linux上部署maven打包的jar_jar_28

如果需要关闭!

查看进程

Linux上部署maven打包的jar_maven_29

通过kill -9 进程号 关闭部署的项目

Linux上部署maven打包的jar_linux_30


问题: jar包部署在Linux上后浏览器访问不到的问题

   有可能是防火墙没有被放行,项目使用的是8280那么就需要放行端口,设置 /etc/sysconfig/iptables添加下面这行

  1. 是否安装了iptables包:/etc/sysconfig/iptables是否存在
  2. jdk环境是否正确配置
  3. 保证程序是正常运行的

步骤


编辑/etc/sysconfig/iptables文件加入应用端口的白名单

vi /etc/sysconfig/iptables

如果没有这个文件通过yum安装

yum install iptables-services

进入之后添加

-A INPUT -P tcp -m state --state NEW -m tcp --dport 8280 -j ACCEPT

Linux上部署maven打包的jar_jar_31

保存退出

Ctrl+c  //退出编辑模式
:wq

重启防火墙

systemctl restart iptables

运行jar包项目

java -jar 程序名.jar

在浏览器访问

198.xxx.xxx.xxx:8280/index.html

IP地址:8280/index.html

注意​:如果加载不出来,可能是没有安装iptables包,检查一下防火墙状态,安装命令在最上面。

开放的端口号为jar指定端口号,默认8080