在几个罐子中从一个罐子装载一个类

时间:2013-01-10 13:15:59

标签: java maven classloader

我想在代码中使用类'javax.xml.stream.XMLOutputFactory'。 类(XMLOutputFactory)可以在多个库中使用,它们作为maven依赖项包含在内。 问题:类(XMLOutputFactory)从jar文件加载,而我期望从其他jar加载。 是否有任何解决方案可以从特定的jar文件中自定义类的加载。

2 个答案:

答案 0 :(得分:2)

不是在java方面(或者可能通过实现新的类加载器,但这不是解决问题的合理方法)。

您应该只是在pom文件中排除不需要的依赖项(版本)。

答案 1 :(得分:1)

从maven 2.0.9开始,类路径是根据pom.xml中的依赖项声明生成的。

来自maven site

  

请注意,如果两个依赖项版本在依赖关系树中处于相同的深度,那么直到Maven 2.0.8没有定义哪一个会赢,但是从Maven 2.0.9开始,它就是声明中的顺序:第一个宣言获胜。

因此,如果您在pom.xml中处理依赖项排序,则可以解决问题