随笔 - 303  文章 - 0  评论 - 3  阅读 - 15万

Spring Boot部署之Web项目jar包形式

  上篇Spring Boot部署之 web项目war包形式介绍了war包形式的部署,本文介绍jar形式运行。jar形式相对简单,相对复杂的内容是如何将其注册为Linux服务。

  一、打jar包

    1、修改pom.xml配置

            

             

     2、执行package(对于module执行package之前需要执行root项目的install,否则package执行失败)

              

     3、执行完成之后,在默认的target目录或者指定目录会生成一个rpc_provider的jar

  二、执行jar

    java -jar rpc_provider.jar   (具体可参考Spring Boot外部配置属性注入)。

  三、注册为Linux服务

    Linux下运行的软件通过将其注册为服务,这样可以通过命令开启、关闭以及保持开机启动等功能。主流的Linux大多使用init.d或systemd来注册服务,下面就以这两种方式下注册服务示例将自定义jar注册为Linux服务。操作如下:

    1、基于init.d部署

          ln -s /home/lifish/myproject/jardemo-0.0.1-SNAPSHOT.jar /etc/init.d/jardemo

      由于本文开发使用环境为systemd管理服务的Linux,所以无法进行验证。如果需要验证,可使用如下命令:

          service jardemo start

          service jardemo stop

          chkconfig jardemo on (开机启动)

      日志保存在/var/log目录下。

    2、基于systemd部署

      1)在/etc/systemd/system添加文件jardemo.service,文件内容为:

             

        注意Description=jardemo和ExecStart=/usr/bin/java -jar /home/lifish/myproject/jardemo-0.0.1-SNAPSHOT.jar

      2)启动服务 systemctl start jardemo

              

      3)开机启动 systemctl enable  jardemo

      4)项目日志journalctl -u jardemo

              

       需要注意的是这是个java项目要jdk支持,如果Linux环境不存在jdk需要先按照jkd否则运行失败。

 

 

  补充:在windows环境中启动可能提示端口号被占用,但实际使用netstat -ano| findstr port 查询这个端口号并未占用。可能原因就是端口号被Hyper-V保留了。试下netsh interface ipv4 show excludedportrange protocol=tcp,如果被保留了,就在打开或关闭功能里把Hyper-V去掉并重启电脑。

  本案例在win10中执行即碰到端口号被占用但是找不到相关进程的问题。最后关闭Hyper-V功能并重启机器解决了。

  注意:通过Maven中配置maven-plugin插件然后通过命令maven clean package将项目打成的jar是一个Fat jar。所谓Fat jar即这种jar不仅仅包含本项目中源码所编译生成的java类文件,还会包含项目所依赖的第三方库及有关项目启动的相关信息(项目代码、项目依赖包、应用启动相关文件等)。

posted on   池塘里洗澡的鸭子  阅读(941)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示