zoukankan      html  css  js  c++  java
  • SpringBoot 项目瘦身

    场景

    在使用 SpringBoot 的过程中发现打包出来的 Jar 是一个 Fat Jar,里面包含了所有项目依赖的第三方 Jar,这就导致在部署的时候十分不方便,动辄 100M 左右的项目实在难以快速部署。

    解决方案

    由于打包出来的 Jar 绝大部分都由项目依赖的第三方 Jar 组成,所以只要将这部分 Jar 包单独抽取出来,然后在启动 SpringBoot 项目的时候指定使用的 lib 就好了。

    实现步骤

    1.pom 增加 plugin

    2.项目启动增加额外参数

    <build>
            <finalName>${project.artifactId}-${project.version}</finalName>
    
            <pluginManagement>
                <!-- 使用两个插件对 SpringBoot 项目瘦身,依赖的 jar 都存放在 lib 文件夹下,部署项目如果没有新的依赖则可以只部署项目中的几个 jar 包即可
                     注意:1.项目有新的依赖添加时,需要上传新的 jar 包到服务器
                          2.core、dao 的 jar 也在 lib 中,发布时也需要替换
                          3.项目启动方式 java -jar -Dloader.path=lib api-0.0.1-SNAPSHOT.jar
                 -->
                <plugins>
                    <!-- 拷贝项目所有依赖jar文件到构建lib目录下 -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>copy-dependencies</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${project.build.directory}/lib</outputDirectory>
                                    <excludeTransitive>false</excludeTransitive>
                                    <stripVersion>false</stripVersion>
                                    <silent>true</silent>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- Spring Boot模块jar构建 -->
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                        <configuration>
                            <includes>
                                <!-- 不存在的include引用,相当于排除所有maven依赖jar,没有任何三方jar文件打入输出jar -->
                                <include>
                                    <groupId>null</groupId>
                                    <artifactId>null</artifactId>
                                </include>
                            </includes>
                            <layout>ZIP</layout>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>repackage</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </pluginManagement>
    
        </build>
    
  • 相关阅读:
    从网络得到图片数据保存到手机中,
    jni 写一个简单的photoshop
    rman catalog配置简要笔记
    如何利用c中的指针实现两个8bit的数合并为16bit
    使用eclipse远程调试weblogic
    迁移11g Rac中OCR和VOTEDISK
    SQL SERVER导入数据到ORACLE的方法总结
    SQL SERVER如何通过SQL语句获服务器硬件和系统信息
    ORACLE SQL Developer日期显示格式设置
    mysqldump:Couldn't execute 'show create table `tablename`': Table tablename' doesn't exist (1146)
  • 原文地址:https://www.cnblogs.com/manastudent/p/14601554.html
Copyright © 2011-2022 走看看