在Java世界好的开源项目太多,自己开发的项目中难免会引中很多别人的jar, 但如何控制下面这种情况呢?
自己的工程A,同时使用了不同的第三方包B1和B2, 而B1和B2又同使用第四方的同一个包的不同版本C1.0和C2.0, (如jdk1.4 和jdk1.5, 这种机率是很大的)。 在这种情况下,自己的工程如何控制协调这种情况?

解决方案 »

  1.   

    我通常都是把需要的jar全部到到CVS上
      

  2.   

    每个项目CVS都有一个地方放jar,大家都去那里拿,很清楚地
      

  3.   

    类加载器, ClassLoader .
    运行时配置策略,但我只会说, 不会写( 试过一次,不成功,不得要领).就象 Tomcat 可以把 类库分了几个目录存入 
    common
    server
    shared各种用途的类库分开 , 你也可以让它加载不加载.每个里面都可能有 endorsed ,如果在其他地方找到了类,就不会到 endorsed 中找.WebSphere 还可以配置是 parent first 还是 parent last , 是父加载器优先还是子加载器优先.
    但是默认父优先.
      

  4.   

    似乎我没把我的问题说清楚:
    自己的项目A,同时使用了不同的第三方包B1和B2, 而B1和B2又同使用第四方的同一个包C,但使用的版本不一样(分别是C1.0和C2.0)问题:
    此时如果知道是应该使用C1.0还是C2.0? (这种情况下是不是有一些隐患?)