有人可以解释Core Classloader加载资源的方式,例如,使用surefire测试插件吗?
我特别需要知道的是,目标/类+目标/测试类和项目依赖项的项目源和资源的加载顺序。
例如,如果我有一个项目和依赖项中都存在的资源。首先加载哪一个?
谢谢
答案 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块中。我想这通常是有意义的,当从插件注入任何内容到真实的应用程序时,但可能会给你带来时髦的惊喜。