Linux 下部署springboot项目 war包和jar包 (超详细教程)

最近需要在Linux 上部署javaweb 项目,javaweb 项目可以自己打包成war包,或者jar 包部署,下面说一下2种包的部署方式。

以下长文警告,点击目录快速访问

目录

  • 部署war 包
    • 一:将springboot项目打包成war包
      • 排除内置tomcat
      • 添加servlet-api的依赖
      • 配置打包类型
      • 在启动类继承SpringBootServletInitializer,重载configure方法
      • war打包
    • 二:打开宝塔面板,部署war 包
      • 把war包上传到 webapp目录下
      • 添加网站
      • 开启 tomcat 服务
      • 访问项目
      • 注意的点
  • 部署jar 包
    • 一:把springboot 打成jar包
      • 配置maven
      • 打包jar
    • 二:打开宝塔面板,部署jar 包
      • 添加网站
      • 上传jar包到网站根目录
      • 运行jar包
        • 第一种方式:使用nohup命令后台运行
        • 第二种方式:使用宝塔自带工具进行部署
        • 第三种方式,编写shell脚本
  • 拓展
    • 静态文件分离部署

部署war 包

一:将springboot项目打包成war包

如果已经打包好了war包,可直接跳过当前步骤

排除内置tomcat

 
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.bootgroupId>
                    <artifactId>spring-boot-starter-tomcatartifactId>
                exclusion>
            exclusions>

添加servlet-api的依赖


        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>javax.servlet-apiartifactId>
            <scope>providedscope>
        dependency>

如下
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第1张图片

配置打包类型

 <packaging>warpackaging>

Linux 下部署springboot项目 war包和jar包 (超详细教程)_第2张图片

在启动类继承SpringBootServletInitializer,重载configure方法

Linux 下部署springboot项目 war包和jar包 (超详细教程)_第3张图片

war打包

点击右边的tool bar -> maven project
点击clean 清除旧包,
点击package 打包
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第4张图片
查看控制台输出信息,build success 表示成功
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第5张图片
如下
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第6张图片

二:打开宝塔面板,部署war 包

把war包上传到 webapp目录下

一般目录为:/www/server/tomcat/webapps/
解压缩war包,然后简化一下名字
在这里插入图片描述
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第7张图片

添加网站

  • 如果没有域名,直接写你服务器的ip地址就行了,或者随便写一个域名www.baidu.com ,反正人家也解析不到你这里,随便填一个就行。
  • 如果有域名,直接添加A记录,然后ip绑定到 你服务器的ip。

我这里通过域名管理,解析A记录,绑定二级域名到本服务器ipLinux 下部署springboot项目 war包和jar包 (超详细教程)_第8张图片
注意! 这里的根目录要绑定到刚刚的war包项目位置
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第9张图片
添加成功:在这里插入图片描述
这几个文件是添加网站后,宝塔自动创建的,不想用可以删掉
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第10张图片

开启 tomcat 服务

Linux 下部署springboot项目 war包和jar包 (超详细教程)_第11张图片
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第12张图片

访问项目

点击启用tomcat 过几分钟基本就能访问到你的项目了,

  • 如果没有域名的话,访问路径就是 http://你的服务器ip:8080/项目名/
    Linux 下部署springboot项目 war包和jar包 (超详细教程)_第13张图片

  • 有域名,直接访问域名即可: http://war.klblog.top:8080 (下面我设置tomcat端口为80,所以不用加8080端口即可访问到) Linux 下部署springboot项目 war包和jar包 (超详细教程)_第14张图片

注意的点

  • tomcat 的访问域名要设置成80端口,才能通过纯域名访问。如果是8080端口,域名访问则为: http://war.klblog.top:8080/
  • 修改为80端口,配置文件如下:
    Linux 下部署springboot项目 war包和jar包 (超详细教程)_第15张图片
    Linux 下部署springboot项目 war包和jar包 (超详细教程)_第16张图片
    保存,重启项目,等待几分钟之后,查看安全组策略,端口是否被监听。显示正常,即为tomcat成功启动。
    在这里插入图片描述

官网解释如下:
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第17张图片

部署jar 包

一:把springboot 打成jar包

配置maven

如果配置过war包,则需要注释掉相应配置!
如果之前是打成war包的,注意packaging标签是不是为war,需要改成jar

 <packaging>jarpackaging>

删掉排除tomcat包的配置
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第18张图片
然后把启动类的configure方法也删掉
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第19张图片

打包jar

springboot 默认打jar 包,如果之前未配置过war包,可以直接点右边的maven 项目 然后 clean 最后 install

Linux 下部署springboot项目 war包和jar包 (超详细教程)_第20张图片

查看控制台,build success 表示成功,并且给出了打包后的文件路径
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第21张图片
查看打包文件
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第22张图片

二:打开宝塔面板,部署jar 包

添加网站

这里的话域名怎么填写,借鉴war包步骤中的方法。
主要就是根目录可以不用更改,这里只需要填写域名,然后点击提交
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第23张图片

上传jar包到网站根目录

Linux 下部署springboot项目 war包和jar包 (超详细教程)_第24张图片
这里可以外置配置文件,如果没有的话,默认使用jar包里的。
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第25张图片

运行jar包

第一种方式:使用nohup命令后台运行

进入ssh终端,cd到项目跟目录 然后输入:
nohup java -jar 你的jar包名.jar > 日志文件名.log 2>&1 &

nohup命令的用法:https://www.cnblogs.com/keystone/p/11159665.html

如下:在这里插入图片描述
可以看到创建了output 日志文件,代表成功执行命令。
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第26张图片
启动成功。
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第27张图片

第二种方式:使用宝塔自带工具进行部署

先根据第一种方式,创建网站。上传jar包,然后再进行下面的步骤!


在宝塔软件商店,安装这个软件
在这里插入图片描述
安装好之后,点击添加项目,选择jar包,输入端口号,确定。等待几分钟即可访问项目。
Linux 下部署springboot项目 war包和jar包 (超详细教程)_第28张图片

第三种方式,编写shell脚本

先将你打包好的jar包重命名为 springboot.jar

在项目的同级目录下,创建2个文件
start.sh

#!/bin/sh

rm -f tpid
nohup java  -jar  -Dloader.path=classes,lib   这里写你项目的jar包例如:springboot.jar   --server.port=这里是端口号 > ./logs/console.log 2>&1 &
echo $! > tpid
echo Start Success!

stop.sh

#!/bin/sh
APP_NAME=这里写你项目jar包名字例如:springboot

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

然后进入终端,进入项目所在目录,
执行命令 ./start.sh 看到 Start Success! 说明开启成功
执行命令 ./stop.sh 看到 Stop Success! 说明成功关闭

请记得放行指定的端口!

第一和第二种方式,都访问成功。

Linux 下部署springboot项目 war包和jar包 (超详细教程)_第29张图片

拓展

静态文件分离部署

很多时候,我们需要更改一些springboot的配置,但是打包成jar 后配置文件跟着一起打包了,这个时候我们就要分离静态文件

很简单,只需要在启动的时候指定路径就好了

下面创建2个文件

#!/bin/sh

rm -f tpid
nohup java  -jar  -Dloader.path=classes,lib   springboot.jar   --server.port=9001 > ./logs/console.log 2>&1 &
echo $! > tpid
echo Start Success!

以上就是全部内容,如果有任何错误的地方,请大家指正。谢谢

你可能感兴趣的:(JavaWeb,【基础】,Java框架,【SpringBoot】,Linux,【基础】,java,tomcat,linux,spring,boot,部署springboot项目)