我是靠谱客的博主 忧心可乐,最近开发中收集的这篇文章主要介绍Jar包优化-去除内置的依赖Jar包1.问题来源2.手动去除插件3.利用插件帮助去除依赖,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.问题来源

项目搭建完成之后,往往需要打成Jar包进行部署。单模块项目还好,但是一旦遇到多模块项目,打完之后每个能启动的模块都会有一个Jar包,为了保证Jar包能够单独启动,Maven会将所有在pom.xml里面关联的依赖(包括继承自父模块)都整合进Jar包。

 

这样会带来一个问题,打出的Jar包体积比较大,但这几个项目引入的外部差异化Jar包可能并不是很多,有很多Jar包其实是可以共用的(比如spring自带的启动包),在同一个地点部署的前提下,每个Jar包里面都包含这些依赖包其实是重复的。那么有什么办法能够使这些依赖进行复用呢,今天我们就来探讨一下这个问题。

2.手动去除插件

我们可能会想到既然公共的Jar包重复了,那么就直接去除公共Jar包就行了。而在spring boot maven里面,给出的去除方法是这样的。

jar包依赖去除-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version> 1.5 . 1 .RELEASE</version>
<configuration>
     <layout>ZIP</layout>
     <excludes>
         <exclude>
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-classic</artifactId>
         </exclude>
         <exclude>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </exclude>
     </excludes>
</configuration>
</plugin>

没错......这样就有一个很严重的问题.....那就是每个Jar包都得自己手动去除.....

我们当然要寻找更好的解决方案,事实上的确有更好的替代,那就是下面提到的插件。

3.利用插件帮助去除依赖

我们可以在项目的启动类(如果有多个启动类那就在这些启动类的总父类)里添加这样一个插件

jar包依赖去除-2
1
2
3
4
5
6
7
8
9
10
11
12
<!--jar包压缩插件-->
<plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot.experimental</groupId>
             <artifactId>spring-boot-thin-layout</artifactId>
             <version> 1.0 . 8 .RELEASE</version>
         </dependency>
     </dependencies>
</plugin>

然后我们打完包就会发现jar包神奇的变成了

体积骤降的原因是因为其中的依赖包都被剥离了,自然这样的包是不能直接运行的,会报错

 

我们需要在jar包同级目录下运行指令

1
java -Dthin.root=lib -jar IDKProxy.jar

这样根据插件打出的jar包会自动的下载依赖到你用Dthin.root指定的文件夹中

程序也会自动运行,在存在加载好的lib依赖包的前提下,下次直接运行只要直接:java -jar jar包名 就可以直接运行了

如果其他jar包依赖相同,那也可以直接运行,不同的话只要将不同的依赖放入lib就行了

最后

以上就是忧心可乐为你收集整理的Jar包优化-去除内置的依赖Jar包1.问题来源2.手动去除插件3.利用插件帮助去除依赖的全部内容,希望文章能够帮你解决Jar包优化-去除内置的依赖Jar包1.问题来源2.手动去除插件3.利用插件帮助去除依赖所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部