最近使用maven打包项目时发现会把当前依赖的所有jar先解压,在跟自己编写的代码生成的class文件一起打包。而我只需要一个运行环境没有的jar而已,
其他依赖包已在运行环境存在。为了减小打包生成jar的大小,只能查阅相关资料。
首先按如下目录找到maven打包时用到的插件包(以下路径为用户未修改本地仓库时的默认配置路径,如修改过请按自己路径查找即可):
C:\Users\{user目录}\.m2\repository\org\apache\maven\plugins\maven-assembly-plugin\2.X,用winrar打开jar包,找到文件
然后打开,显示如下内容:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<!-- TODO: a jarjar format would be better -->
<id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>false</useProjectArtifact>
<span style="color:#ff0000;"><unpack>true</unpack></span>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
</assembly>
找到 <unpack>true</unpack>这句,修改为false。保存,弹出对话框如下:
点击是,即可。然后在项目根目录下使用maven打包命令:mvn assembly:assembly打包即可。
结果发现依赖包仍然保持jar的形式。