zoukankan      html  css  js  c++  java
  • SpringBoot系列---【SpringBoot项目瘦身,实现增量部署】

    背景:

    SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了。这个时候如果想要对线上运行工程有一些微调,则非常痛苦。

    1.把pom.xml文件中的打包插件,更换成下面的

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId> 
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                   <!-- 启动类路径+类名-->
                    <mainClass>com.jiulong.springboot_validator.SpringbootValidatorApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                <execution>
                     <goals>
                         <goal>repackage</goal>
                     </goals>
                 </execution>
               </executions>
            </plugin>
         <plugins>
    <build> 

    2.进入项目根目录,执行命令:mvn clean install (也可以直接用idea中的maven插件)

    将编译后的Jar包解压,拷贝 BOOT-INF 目录下的lib文件夹 到目标路径,如下可见,springboot的web初始化项目所依赖的jar包大小35.8兆。

     

    3.修改pom.xml配置,编译出不带 lib 文件夹的Jar包(添加紫红色部分即可

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.jiulong.springboot_validator.SpringbootValidatorApplication</mainClass>
                    <layout>ZIP</layout>
                    <includes>
                        <include>
                            <groupId>nothing</groupId>
                            <artifactId>nothing</artifactId>
                        </include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

     4.配置完成后,再次执行编译:mvn clean install(也可以直接用idea中的maven插件)

    生成的 Jar 包体积明显变小,如下所示, 外部的 jar 包已经不会被引入了,自己写的代码实际才125kb。

     5.上传至服务器,并按如下目录结构放置:

    6.执行命令,启动项目(紫红色部分替换成你自己的)

    java -Dloader.path=./lib -jar springboot_validator-1.0.0-SNAPSHOT.jar 

    7.总结

    1、通常,一个工程项目架构确定后,引入的jar包基本上不会变,改变的大部分是业务逻辑;

    2、后面如果需要变更业务逻辑,只需要轻量地编译工程,大大提高项目部署的效率。

    愿你走出半生,归来仍是少年!
  • 相关阅读:
    版本控制
    1121 Reverse the lights(“玲珑杯”线上赛 Round #15 河南专场)
    LightOJ 1055
    LightOJ 1053
    LightOJ 1052
    4512 吉哥系列故事——完美队形I(LCIS)
    ZOJ 2432-Greatest Common Increasing Subsequence
    病毒 (湖南省第八届大学生计算机程序设计竞赛)
    1328 台球碰撞 (湖南省第六届大学生计算机程序设计竞赛)
    zzuli 1332 内部收益率 (湖南省第六届大学生计算机程序设计竞赛)
  • 原文地址:https://www.cnblogs.com/hujunwei/p/14029909.html
Copyright © 2011-2022 走看看