美文网首页技术分享
SpringBoot打“瘦”包

SpringBoot打“瘦”包

作者: 茶还是咖啡 | 来源:发表于2019-11-26 15:07 被阅读0次

    SpringBoot默认的打包类型为“胖”包,顾明思议比较臃肿,打好的jar包中包含所有的运行时需要的依赖,一般存放在jar包中的BOOT-INF\lib文件夹中。我们直接可以通过java -jar ...指令就可以运行我们的项目。
    瘦包的原理大概是这样的,将项目运行时需要的依赖不再打包的时候打进我们的项目jar包中,而是存放在指定的目录,然后运行项目的时候指定依赖的位置即可。这样的好处就是我们的项目打包后会变的十分轻巧。

    1. 在pom中新增插件
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <layout>ZIP</layout>
                        <includes>
                            <include>
                                <groupId>nothing</groupId>
                                <artifactId>nothing</artifactId>
                            </include>
                        </includes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.0</version>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>target/lib</outputDirectory>
                                <overWriteSnapshots>true</overWriteSnapshots>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    

    这两个插件一个是用来收集项目运行时需要的依赖到指定的目录,这里指定目录为target\lib下。
    还有一个就是SpringBoot提供的打包工具,只不过加入打包时不需要将依赖打进项目的配置参数而已。

    1. 指定mvn package 打包后,target目录下文件


      image.png
    2. 运行项目时需要指定依赖的存放路径
    nohup java -Dloader.path="./lib"  -jar $JVM_OPS ${JAVA_BASE_SRC}/${PROJECT_JAR}  &
    

    相关文章

      网友评论

        本文标题:SpringBoot打“瘦”包

        本文链接:https://www.haomeiwen.com/subject/hqdbjctx.html