springboot jar包瘦身
现在的项目结构是业务包引用comomn包,common包里又引用了很多其他的jar包,导致业务包打包出来动则就是一百甚至两百兆,现在要做到把公共的包放出来,放到一个单独的文件夹,业务包里只放业务代码。
现在只需要修改maven build节点如下:
<build> <finalName>pager</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--表示编译版本配置有效--> <fork>true</fork> <!--引入第三方jar包时,不添加则引入的第三方jar不会被打入jar包中--> <includeSystemScope>true</includeSystemScope> <!--排除第三方jar文件--> <includes> <include> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <!--复制到哪个路径,${project.build.directory} 缺醒为 target,其他内置参数见下面解释--> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>true</overWriteReleases> <overWriteSnapshots>true</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <!-- 是否要把第三方jar加入到类构建路径 --> <addClasspath>true</addClasspath> <!-- 外部依赖jar包的最终位置 --> <classpathPrefix>lib/</classpathPrefix> <!-- 项目启动类 --> <mainClass>com.leenleda.pager.PagerApplication</mainClass> </manifest> </archive> <!--资源文件不打进jar包中,做到配置跟项目分离的效果--> <excludes> <!-- 业务jar中过滤application.properties/yml文件,在jar包外控制 --> <!-- <exclude>*.properties</exclude>--> <!-- <exclude>*.xml</exclude>--> <!-- <exclude>*.yml</exclude>--> </excludes> </configuration> </plugin> </plugins> </build>
这样jar包就只有一百多kb,引用的三方包就在lib目录下。
本文来自博客园,作者:Rolay,转载请注明原文链接:https://www.cnblogs.com/rolayblog/p/18413422