类加载器资源 - 空值

Classloader Resource - Null value

我正在使用以下代码 print/access 测试用例中的根资源位置: this.getClass().getClassLoader().getResource(".")

但是,当我 运行 使用 Maven 或 ANT 测试用例时,这会产生不同的结果。对于 Maven 构建,我得到了正确的路径 "C:\....",但是 ANT returns null 在这里。

知道我错过了什么吗?

更新:项目结构 - src/resources | tst/resources。

Maven 和 Ant 使用不同的 class 加载器系统。 Maven uses the Classworlds 框架

Maven uses the Classworlds classloading framework with which we create our classloader graph.

Ant uses the "Java's delegation model"

Ant's class loader implementation uses Java's delegation model

您的结果可能会有所不同,因为您调用 getResource(".")ClassLoader 在 Maven 和 Ant 之间并不相同。您将产生的结果在很大程度上取决于 ClassLoader 实施。

看起来 2.5 之前的 ANT 版本中存在错误,导致 ANT 既不复制 tst/resources 也不将它们添加到 class-路径 (JIRA#IO-451)。