maven 全局排除jar包
大多数java应用源码构建和依赖管理是使用maven来实现的,我们的应用系统也都是基于maven构建的,maven虽然在依赖管理方面确实很便捷,但是也发现也有"死角",它并不能很好地解决所有依赖的问题,“全局排除”功能。 我们的项目是基于rose框架的,是基于spring的版本是2.5.6.近期需要用到active-mq.需要把版本升级,所以需要用到3.1.1版本.由于我们的系统比较庞大,中间层服务的项目互相依赖,导致spring-2.5.6.SEC03.jar间接依赖比较多. maven会对重复依赖的jar包进行过滤,对传递依赖过滤的规则是: 1.路径最近者优先. 2.先声明的优先. mvn dependency:tree:查看项目构建的依赖树.但是这个并不全,相当是删减版的. 像要解决我的问题就必须加上-Dverbose参数,加上这个展示的就是全部的依赖树了. 执行后,结果发现傻眼了,spring-2.5.6.SEC03.jar这个引入的地发有近30处,然后我就像有没有全局排除呢,这样声明一处就好了.结果发现最新版的最新版还是没有,虽然对外说的是"后续会提供".....,当时内心是崩溃的.只有全部加上exclusion了.求当时心里的阴影面积..... 然后想到总有一些jar包是不能"共处一室"的,否则会"同室操戈"的