【发布时间】:2010-12-14 19:31:57
【问题描述】:
谁能解释一下Core Classloader 在使用surefire 测试插件时如何加载资源?
我特别需要知道的是项目源和来自目标/类 + 目标/测试类和项目依赖项的资源的加载顺序。
例如,如果我有一个既存在于项目中又存在于依赖项中的资源。先加载哪个?
谢谢
【问题讨论】:
标签: maven-2 classloader
谁能解释一下Core Classloader 在使用surefire 测试插件时如何加载资源?
我特别需要知道的是项目源和来自目标/类 + 目标/测试类和项目依赖项的资源的加载顺序。
例如,如果我有一个既存在于项目中又存在于依赖项中的资源。先加载哪个?
谢谢
【问题讨论】:
标签: maven-2 classloader
原来答案很简单。
首先,在调试模式下可以看到插件类路径,$mvn test -X
第一个条目是target/test-classes,然后是target/classes,然后是插件和所有项目依赖项。
【讨论】:
仅供参考:例如,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 块内。我想这在正常情况下是有道理的,当插件没有任何东西注入到真正的应用程序时,但可能会给你带来奇怪的惊喜。
【讨论】: