`
Javahuhui
  • 浏览: 80838 次
  • 性别: 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项目,安装手册,操作文档

    在本文中,我们将深入探讨如何将Spring Boot项目部署到中创中间件(InforSuite AS)上,并解决可能出现的中文乱码问题。首先,我们需要理解Spring Boot和中创中间件的基本概念。 Spring Boot是由Pivotal团队提供的...

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

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

    Spring Boot讲义.pdf

    在Spring Boot中,"快速入门"通常指的是新手或初学者对Spring Boot的基本认识和基础使用,能够快速构建和部署一个Spring Boot应用程序。 ### Spring Boot概述 #### 1.1. 什么是Spring Boot Spring Boot是Spring...

    十分钟上手spring boot

    Spring Boot 旨在提供快速应用开发所需的“一站式”解决方案。其目标是简化新Spring应用的初始搭建以及开发过程。 ##### 一、Spring Boot文档概述 **1. 关于本文档** 本文档旨在帮助初学者快速掌握Spring Boot的...

    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文件...

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

    通过以上步骤,开发者可以构建一个集成了MyBatis、Redis和ActiveMQ的Spring Boot应用,并进行打包部署,以实现数据持久化、缓存管理和消息队列等功能,提高系统的性能和可扩展性。在实际操作中,还需要考虑安全性、...

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

    "Spring Boot 项目与 Vue 一起部署到 Tomcat 服务器" 在本文中,我们将介绍如何将 Spring Boot 项目和 Vue 一起部署到 Tomcat 服务器中。这个过程需要我们对 Tomcat 服务器进行配置,以便能够正确地部署并运行我们...

    Spring Boot 2 Cookbook 第二版

    书中会介绍如何打包Spring Boot应用为可执行JAR,以及如何在这些平台上部署和管理应用。 最后,你将学习到如何监控和管理Spring Boot应用,例如使用Actuator提供的健康检查、指标收集、审计日志等功能。 总的来说...

    Spring Boot-实战

    8. **部署与运行**:讨论如何打包Spring Boot应用为可执行JAR或WAR文件,以及如何在Docker容器、云平台(如Heroku)上部署应用。 9. **微服务架构**:可能涉及如何使用Spring Cloud构建微服务,包括服务发现、配置...

    spring boot 相关技术

    4. **容器化**:深入探讨如何将 Spring Boot 应用容器化,使用 Docker 和 Kubernetes 进行部署。 5. **故障排查与日志分析**:提供关于如何调试和分析 Spring Boot 应用的技巧,以及日志管理和分析工具的使用。 6....

    Spring Boot面试题(92题)

    Spring Boot的出现是为了应对Spring项目日益复杂的构建和配置问题。在传统的Spring项目中,开发者需要手动添加构建路径、Maven依赖以及配置应用程序服务器。然而,Spring Boot在现有Spring框架的基础上构建,通过...

    spring boot 所有‘demo,打包下载’

    这个“spring boot 所有‘demo,打包下载’”的资源集合是一个极好的学习材料,涵盖了 Spring Boot 的多个关键领域,包括 JPA、Tomcat、Cache、Ant、Hibernate 4、Jetty、WAR 包、Web 开发和 XML 配置。 1. **...

    spring boot 小例子

    Spring Boot 是一个由 Pivotal Team 开发的用于简化 Spring 应用程序初始搭建以及开发过程的框架。它集成了大量常用的第三方库配置,如 ...对于初学者,理解并解决这些问题有助于深入掌握 Spring Boot 及其部署实践。

    spring boot 中文文档

    整体而言,Spring Boot中文文档为读者提供了从基础到高级的详细指南,涵盖了安装、开发、运行和部署Spring Boot应用的方方面面。文档的深度和广度对于初学者和有经验的开发者都具有相当的价值,是学习和使用Spring ...

    11-Spring Boot面试题(92题).pdf

    1. 独立运行:Spring Boot项目可以打包成一个包含所有依赖的可执行jar包,可以独立运行无需部署到外部的Servlet容器中。 2. 简化配置:通过spring-boot-starter-web等启动器自动配置依赖项,减少了Maven配置的工作量...

    Spring Boot核心技术-笔记-pdf版.pdf

    Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,开发者无需单独打包部署,大大简化了应用的发布流程。 4. **Actuator(监控与健康检查)** Actuator提供了一系列的端点(endpoints)用于监控和管理应用...

    Spring Boot 官方文档1.4.0.M3

    文档是学习和掌握Spring Boot不可或缺的资源,文档中的各个部分详细介绍了如何从零开始安装、配置和使用Spring Boot,以及如何进行项目开发、打包、测试和部署。文档中还包含了常见问题的解答,帮助开发者快速上手和...

Global site tag (gtag.js) - Google Analytics