SpringBoot 打包配置去除第三方依赖包
目前搭建springboot 微服务项目是最流行的架构。使用起来非常方便。搭建springboot架构。请自行参考其他文档。这一节主要解决的问题就是。我们打包上传部署。
以前我们打包,都是把整个项目打成jar或者war包的形式。上传内容都是好几百mb大小、那么接下来我们如何。瘦身打包。并且部署呢?
1.先了解原理:
瘦身打包和和正常打包的区别。就一点:(1)BOOT-INF/lib 是否存依赖第三方包。
直接干货代码:
WIN10系统:
1.正常打包
<build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 指定该Main Class为全局的唯一入口 --> <mainClass>com.cy.plat.cyadmin.CyAdminApplication</mainClass> <layout>ZIP</layout> <includes> <!-- 设置没有jar包--> <!--<include> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include>--> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中--> </goals> </execution> </executions> </plugin> <!--<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.3</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>--> </plugins> </build>
2.瘦身打包:
<build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 指定该Main Class为全局的唯一入口 --> <mainClass>com.cy.plat.cyadmin.CyAdminApplication</mainClass> <layout>ZIP</layout> <includes> <!-- 设置没有jar包--> <include> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中--> </goals> </execution> </executions> </plugin> <!--<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.3</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>--> </plugins> </build>
比较方法其实就是
就是在 spring-boot-maven-plugin这个插件中,加入这么一句话
<!-- 设置没有jar包--> <include> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include>
3.如何部署:
我们把正常打包的项目解压出来。找到 BOOT-INF/lib把整个lib包,复制一份,放到和瘦身jar包放同一个目录下:
最后启动命令:
java -Dloader.path=/path/to/lib -jar /path/to/cy-admin.jar
备注:
- 将/path/to/改成实际的路径。
- -Dloader.path=lib文件夹路径
或者当前目录命令可以用这个:
java -Dloader.path=./lib -jar ./cy-admin.jar
然后就启动完毕了。