类加载器资源 - 空值

时间:2017-11-19 19:40:58

标签: java maven ant

我使用下面的代码来打印/访问测试用例中的根资源位置:     this.getClass().getClassLoader().getResource(".")

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

知道我在这里缺少什么吗?

更新:项目结构 - src / resources | TST /资源。

2 个答案:

答案 0 :(得分:0)

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

  

Maven使用我们创建的Classworlds类加载框架   我们的类加载器图。

Ant uses the "Java's delegation model"

  

Ant的类加载器实现使用Java的委托模型

您的结果可能会有所不同,因为您调用的ClassLoader getResource(".")在Maven和Ant之间不一样。您将得出的结果高度依赖于ClassLoader实现。

答案 1 :(得分:0)

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