今天突然發現web項目打包后的exe居然有200M+了,心想不應該有這么大的啊,於是檢查了一番發現引用的jar有130+個,仔細一瞅發現好多同名的但是不同版本的jar,比如說有commons-httpclient就有兩個,3.0和3.1版本的。這樣直接導致了lib下有很多重復的jar,安裝程序體積自然就上去了。
打開POM.xml,運行了一下mvn dependency:tree 命令,查看依賴關系樹形結構發現有兩個jar都是依賴了commons-httpclient這個jar,但是這兩個依賴的版本是不一樣的,所以maven就把兩個版本的都添加進來了。
解決辦法就是通過exclusions配置dependency中要排除的jar文件。 示例如下:
<dependency> <groupId>org.codehaus.xfire </groupId> <artifactId>xfire-all </artifactId> <version>1.2.6 </version> <exclusions> <exclusion> <groupId>org.springframework </groupId> <artifactId>spring </artifactId> </exclusion> </exclusions> </dependency>
這樣就排除了xfire中的spring依賴。同理,根據maven依賴樹可以看到哪些jar是重復依賴的,然后通過exclusions排除掉重復的項就可以了。