日期:2014-05-18  浏览次数:20783 次

关于Maven
本帖最后由 jinsong1213 于 2013-12-11 15:01:58 编辑
有个依赖如下:

<dependency>
    <groupId>com.opensymphony</groupId>
    <artifactId>xwork-core</artifactId>
    <version>2.1.6</version>
</dependency>


这一个依赖导致引入了多个下级依赖,并且下级依赖又引入了多个依赖。如图:


问题:如果项目需要的依赖特多的话,导致依赖的jar就有可能重复,尤其是什么SSH之类的。

请问诸位大牛是怎么解决这个问题的?

谢谢




------解决方案--------------------
结合我用maven整合ssh的经历来看 这个是难免的 而且通过maven引入的包你是不能在buildpath中手动remove的 但是你可以找出冲突的包,它被哪些包所依赖了。然后用exclude的方式将其中一个冲突的包给去掉 比如
 <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>3.2.1.ga</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.transaction</groupId>
                    <artifactId>jta</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

在别的包中如果你发现也依赖javax.transaction这个包了 那你可以通过这种方式让hibernate-entitymanager这个包不将它所依赖的包给导入