springboot打包时依赖jar和项目jar分开打包;jar包瘦身

这篇具有很好参考价值的文章主要介绍了springboot打包时依赖jar和项目jar分开打包;jar包瘦身。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

最近感觉项目在部署时时jar包传输太慢了;
看了下jar包内容,除了项目代码,其余大部分都是依赖jar
平时改动较多的只是项目代码,依赖jar改动比较少;
所以就在想能不能分开打包;这样只部署项目代码的改动就快多了;

我的jdk版本:17
springboot版本:3.1.2

分开打包

将依赖的jar包都copy到项目执行jar外面路径中;
我这边copy到项目jar的同级目录中,也可以copy到其他路径

<!--拷贝依赖到jar外面的lib目录-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>                <!--指定的依赖路径-->
                <outputDirectory>
                    ${project.build.directory}/lib
                </outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

然后打包项目jar;有2种打包方式;

项目jar打包方式一:
依赖jar前加上class path;我上面的依赖jar的存放路径和项目jar在同一级下,所以这里直接加上路径lib即可;

启动的时候直接启动即可

java -jar xxx.jar
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-jar-plugin</artifactId>
   <version>${maven-jar-plugin.version}</version>
   <configuration>
       <archive>
           <manifest>
               <!--addClasspath表示需要加入到类构建路径-->
               <addClasspath>true</addClasspath>
               <!--classpathPrefix指定生成的Manifest文件中Class-Path依赖lib前面都加上路径,构建出lib/xx.jar-->
               <classpathPrefix>lib/</classpathPrefix>
               <mainClass>org.qps.QpsAdminApplication</mainClass>
           </manifest>
       </archive>
   </configuration>
</plugin>

springboot打包时依赖jar和项目jar分开打包;jar包瘦身,JAVA,springboot,spring boot,jar,后端

项目jar打包方式二:
依赖jarcopy方式不变,调整打包插件和启动方式;但是我这边没有成功;
打包后依赖的确是分离了;但是启动的时候一直提示在依赖lib下找不到主类

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>${spring-boot.version}</version>
    <configuration>
        <executable>true</executable>
        <!-- 指定layout = ZIP;打包的时候就不会把依赖的jar一起当进去 -->
        <layout>ZIP</layout>
        <mainClass>org.qps.QpsAdminApplication</mainClass>
        <!--解决windows命令行窗口中文乱码-->
        <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
        <!--只包含自己-->
        <includes>
            <include>
                <groupId>${groupId}</groupId>
                <artifactId>${artifactId}</artifactId>
            </include>
                
            <!--依赖jar不打进项目jar包中-->
            <!--<include>
                 <groupId>nothing</groupId>
                 <artifactId>nothing</artifactId>
            </include>-->
        </includes>
        <!--不包含哪些-->
        <!--<excludeGroupIds>-->
        <!--com.hundsun.jrescloud,-->
        <!--org.springframework.boot,-->
        <!--org.springframework-->
        <!--</excludeGroupIds>-->
    </configuration>

    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

参考博文
https://www.cnblogs.com/kingsonfu/p/11431743.html文章来源地址https://www.toymoban.com/news/detail-738368.html

到了这里,关于springboot打包时依赖jar和项目jar分开打包;jar包瘦身的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot 插件 spring-boot-maven-plugin 原理,以及SpringBoo工程部署的 jar 包瘦身实战

    我们直接使用 maven package (maven自带的package打包功能),打包Jar包的时候,不会将该项目所依赖的Jar包一起打进去,在使用 java -jar 命令启动项目时会报错,项目无法正常启动。这个时候,我们就可以考虑引用 spring-boot-maven-plugin 插件来为项目打Jar包。 maven项目的pom.xml中,添

    2024年02月06日
    浏览(52)
  • Spring本地jar包依赖项目改为maven依赖

    我们在做项目的时候,可能会偶尔接手较为古老的项目,这些项目使用了较为老旧的版本管理或依赖管理方法,对于新开发项目来说,这些老旧的依赖管理方式会影响开发效率,所以,一般我们会选择将老项目的依赖管理修改为maven方式,简化依赖管理与测试打包等步骤 传统

    2024年02月06日
    浏览(61)
  • SpringBoot学习——项目用maven打包成jar包 & windows + Linux平台运行 & Linux安装java & 遇到的问题

    1.maven打包springboot项目,jar包; 2.windows安装java环境,以及运行jar包; 3.Linux安装java环境,以及运行jar包; 4.运行jar包template might not exist报错及解决; Maven 构建生命周期定义了一个项目构建跟发布的过程。 一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的

    2024年02月16日
    浏览(74)
  • 将springboot项目生成可依赖的jar,并引入到项目中

    SpringBoot项目默认打包的是可运行jar包,也可以打包成不可运行的jar包。 能打成可运行的jar包是因为,Spring Boot 项目引入了 spring-boot-maven-plugin 依赖包。 spring-boot-maven-plugin具有repackage 功能,就是在打包的时候,多做一点额外的事情: (1)首先 mvn package 命令 对项目进行打包,

    2024年02月17日
    浏览(44)
  • SpringBoot 将项目打包成 jar 包

    一、项目打包成 jar 包 首先在 pom.xml 文件中导入 Springboot 的 maven 依赖 在项目的生命周期中,package 一下 package 完成以后, target 中会生成一个. jar 包 package 完成后的 jar 包 找到对应的 jar 包路径下, java -jar 打包后的名字即可运行成功; 该 jar 包所在的路径下 cmd java -jar 运行项目

    2024年02月13日
    浏览(41)
  • SpringBoot项目如何引入外部jar及将外部jar打包到项目发布jar包

    1、创建一个SpringBoot项目 下载项目之后将项目导入IDEA 2、如何添加外部jar包 准备一个外部的jar包, 我这里使用的是 guava-31.1-jre.jar 作为演示 下载地址:https://repo1.maven.org/maven2/com/google/guava/guava/31.1-jre/guava-31.1-jre.jar 在项目根路径下创建一个文件夹libs,将guava-31.1-jre.jar放到li

    2024年02月15日
    浏览(56)
  • springboot项目打包成可执行jar

    spring-boot-maven-plugin是Spring Boot项目专用的构建插件,它可以将项目打包成一个可执行的JAR文件,内置了一个嵌入式的Servlet容器,方便于开发、测试和部署。在pom.xml文件中,你可以配置该插件的信息如下: pom.xml

    2024年02月07日
    浏览(45)
  • springboot项目打包jar和war有什么区别

    Spring Boot 项目可以打包成可执行的 JAR(Java Archive) 文件或 WAR(Web Archive) 文件,两者之间有一些区别: JAR 文件是一种常见的Java归档文件格式,它包含了项目的所有代码、依赖项和资源文件。 Spring Boot 的JAR包是可执行的,可以通过 java -jar 命令直接运行。这种方式下,Spr

    2024年01月25日
    浏览(48)
  • Spring Boot项目使用Maven打包并带上依赖

    在这篇博客中,介绍如何使用Maven将Spring Boot项目及其依赖项打包成一个可执行的jar文件。我们将使用Spring Boot的 spring-boot-maven-plugin 插件来完成这个任务。 在你的 pom.xml 文件中,你需要添加或更新 build 部分以使用 spring-boot-maven-plugin 插件。下面是一个示例配置: 在这个配置中

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包