`
Javahuhui
  • 浏览: 78393 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring boot打包部署问题解决

阅读更多

基于Maven打包部署spring boot项目,在网上大部分都是:

<plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
                <mainClass>${start-class}</mainClass>
            </configuration>
              <executions>
                <execution>
                  <goals>
                    <goal>repackage</goal>
                  </goals>
                </execution>
            </executions>
        </plugin>

问题是打包后整个项目是jar,它所依赖的其它jar也会包含进去,导致整个项目很大,每次更新项目都得整个jar包更新,很麻烦。

那有没有一种方式是把项目依赖的jar单独出来?在部署更新项目时,只需要更新项目自身代码,不用更新依赖包。

项目jar包解压出来后的目录结构:

 

解决方法就是,在pom中改用以下配置:

<plugin>
		   <groupId>org.springframework.boot</groupId>
		   <artifactId>spring-boot-maven-plugin</artifactId>
		   <configuration>
		      <layout>ZIP</layout>
		      <minimizeJar>true</minimizeJar>
		   </configuration>
		</plugin>

 打包后得到的项目tboot.jar,拷贝lib出来,然后直接从jar中删除lib及目录下的依赖包

 

这样得到我们的业务代码,部署到Linux服务器上,lib依赖包单独存放:

 

启动项目的命令:java -Dloader.path="lib/" -jar tboot.jar

项目正常运行

另外附上后台后台启动的方式,已经编写好shell脚本startup.sh(该脚本文件跟项目tboot.jar放同一目录下):

#!/bin/sh
#功能简介:启动上层目录下的jar文件
#参数简介:
#    $1:jar文件名(包含后缀名)
#    注意:jar文件必须位于startup.sh目录的上一层目录。

#启动参数
JAVA_OPTS="-server -Xms400m -Xmx400m -Xmn300m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xverify:none -XX:+DisableExplicitGC -Djava.awt.headless=true"

jar_name=$1
this_dir="$( cd "$( dirname "$0"  )" && pwd )"
parent_dir=`dirname "${this_dir}"`
log_dir="${parent_dir}/logs"
log_file="${log_dir}/catalina.out"
jar_file="${jar_name}"
#依赖包目录(相对路径)
lib_dir="lib/"

#参数个数<1或者参数空值时,中断执行
if [ $# -lt 1 ] || [ -z $1 ]; then
    echo -e "\033[31m请输入要部署的jar包名称!\033[0m"
    exit 1
fi

#日志文件夹不存在,则创建
if [ ! -d "${log_dir}" ]; then
    mkdir "${log_dir}"
fi

#父目录下jar文件存在
if [ -f "${jar_file}" ]; then
    #启动jar包;重定向标准错误输出到文件,丢掉标准输出
    java $JAVA_OPTS -Dloader.path=${lib_dir} -jar ${jar_file} 1>/dev/null 2>"${log_file}" &
    exit 0
else
    echo -e "\033[31m${jar_file}文件不存在!\033[0m"
    exit 1
fi

 

补充:Maven打可执行Jar包的插件配置(基于Dubbo)

  • 大小: 12.3 KB
  • 大小: 11.5 KB
  • 大小: 2.3 KB
  • 大小: 64.1 KB
  • 大小: 60.1 KB
分享到:
评论

相关推荐

    spring boot项目和vue一起放在tomcat部署

    spring boot项目和vue一起放在tomcat部署,spring boot项目和vue一起放在tomcat部署

    spring boot一键打包zip,并且在linux下直接部署的高效方法工具

    5.daemon-linux-zip.xml --主要用于打包的配置 备注:1,2,3这三个文件放在工程的src的bin目录下,在linux下执行的时候可能会提示找不到文件,例如start.sh:只需要vim start.sh,然后:set ff=unix,最后:wq即可 5文件...

    Java课程实验 Spring Boot 项目的打包和部署

    要打包和部署Spring Boot项目,可以按照以下步骤进行: 1. 打包项目: - 在项目根目录下使用命令行或终端运行以下命令打包项目 - 这将使用Maven构建工具进行项目的打包,并生成一个可执行的JAR文件 2. 部署项目: ...

    Spring Boot打包部署和环境配置详解

    主要介绍了Spring Boot打包部署和环境配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Spring Boot应用集成打包部署.docx

    Spring Boot是一个开发框架,目的是简化Spring应用的初始搭建过程和开发过程,它提供了默认的代码和注解配置,简化了开发过程,它可以与MyBaties、Redis、ActiveMQ等多种技术进行集成使用,简化了项目开发的过程

    Spring Boot实战与原理分析视频课程包含14-18

    Spring Boot实战与原理分析视频课程包含14-18,本视频教程为网络整理,如有侵权,请联系删除。谢谢 Spring Boot实战与原理分析视频课程 ...27 Spring Boot 应用的打包和部署35:41 --两种方式演示服务的打包,部署,运行

    springboot应用打包成war包部署

    springboot应用打包成war包部署

    spring boot 小例子

    spring boot小例子,直接打包成war包,部署到tomcat下,不过还有点小问题,后面需修改

    Springboot基于assembly的服务化打包方案及spring boot部署方式

    主要介绍了Springboot基于assembly的服务化打包方案及springboot项目的几种常见的部署方式,本文主要针对第二种部署方式提供一种更加友好的打包方案,需要的朋友可以参考下

    spring Boot打包部署到远程服务器的tomcat中

    主要给大家介绍了关于spring Boot打包部署到远程服务器的tomcat中的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    spring boot测试打包部署的方法

    spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发、调试、打包到最后的投产上线,感兴趣的朋友一起看看吧

    spring boot项目打包成war在tomcat运行的全步骤

    主要给大家介绍了关于spring boot项目打包成war在tomcat运行的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    Spring Boot是一个基于Spring框架的开源项目,旨在简化Spring应用的初始搭建以及开发过程 以下是对Spring

    其次,Spring Boot支持内嵌的Servlet容器(如Tomcat、Jetty、Undertow等),这意味着你可以将应用程序打包为一个可执行的JAR文件,并直接运行,无需单独安装和配置外部容器。这大大简化了应用的部署过程,提高了开发...

    Vue项目部署在Spring Boot出现页面空白问题的解决方案

    网上流行的解决方案是将assetsPublicPath: ‘/’改成’./’,下面说一下这个解决方案的...Vue项目部署在Spring Boot出现的另一个常见问题是当刷新浏览器的时候出现white label, 也就是404错误,解决的方案基本是把er

    OIM Spring Boot_share.ppt

    Spring Boot 入门 以及微服务的简单介绍,spring boot 打包部署 等简单功能介绍 Part 1. Spring Boot introduce Part 2. Prepare environment Part 3. First Spring boot demo project Part 4. Muliple ...

    Linux下SpringBoot/SpringCloud微服务部署Shell

    Linux下SpringBoot/SpringCloud微服务部署Shell,对微服务jar进行部署,格式如下: sh spring-boot.sh $OPERATION jar包.jar --spring.profiles.active={自定义} OPERATION支持start、stop、status

    解决spring boot + jar打包部署tomcat 404错误问题

    1.spring boot 不支持jsp打jar包,jsp只能打war包. 方法: &lt;packaging&gt;war &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-maven-plugin 2.tomcat版本不能太新,太新容易不...

    Spring Boot 技术架构图

    Spring Boot技术架构是一个全面而强大的框架,用于构建现代应用程序。该架构涵盖了前端、代理、API网关、业务服务、中间件、数据存储、持续集成和容器服务等关键组件,以提供完整的应用程序解决方案。 前端是用户与...

    Spring Boot打包war jar 部署tomcat

    主要介绍了Spring Boot打包war jar 部署tomcat的相关资料,需要的朋友可以参考下

    springboot总结.doc

    Spring Boot使用“习惯优于配置”的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。

Global site tag (gtag.js) - Google Analytics