美文网首页技术分享
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