Maven插件类加载

时间:2010-12-14 19:31:57

标签: maven-2 classloader

有人可以解释Core Classloader加载资源的方式,例如,使用surefire测试插件吗?

我特别需要知道的是,目标/类+目标/测试类和项目依赖项的项目源和资源的加载顺序。

例如,如果我有一个项目和依赖项中都存在的资源。首先加载哪一个?

谢谢

2 个答案:

答案 0 :(得分:0)

事实证明答案非常简单。

首先,可以在调试模式下看到插件类路径,$ mvn test -X

第一个条目是target/test-classes,然后是target/classes,然后是插件和所有项目依赖项。

答案 1 :(得分:0)

仅供参考:例如,jetty-plugin使用自己的依赖项和类加载器来配置Jetty。例如,在我的情况下,我想重写HashSessionMAnager(因为http://apache-wicket.1842946.n4.nabble.com/Session-optimization-td3321009.html)。运行mvn jetty:run继续推进标准的HashSessionMAnager。

要覆盖jetty-plugin的依赖项,我必须从我的小被覆盖的HashSessionMAnager中创建一个jar并放置一个依赖块

<dependencies>
    <dependency>
          ...
    </dependency>
<dependencies>

在jetty-plugin块中。我想这通常是有意义的,当从插件注入任何内容到真实的应用程序时,但可能会给你带来时髦的惊喜。