我已经实现了一个自定义的ANT任务(扩展org.apache.tools.ant.Task),它在内部使用来自当前线程的上下文类加载器。 (看起来像这样)执行ANT任务时的默认类加载器
Thread.currentThread().getContextClassLoader()
如果任务是通过例如通过任何java类中的随机主方法执行的,则所有内容都按预期工作。问题是,如果我构建一个jar,包含这个任务和它需要的所有东西,并在另一个项目build.xml中为我自己的任务定义...那么ANT似乎使用它自己的类加载器。这导致了许多问题,因为ANT类加载器不能知道我的类。
有没有解决方法?做类似下面的事情没有帮助:(内部执行我的任务的方法)
Thread.currentThread()
.setContextClassLoader(AnyOwnClass.class.getClassLoader());
是否有可能获得“真正的”类加载器?任何帮助将很好
我已经尝试修改类路径,只需在我的taskdefinition中添加一个标记,但该标记无效。无论如何,如果我只是在运行ant时使用-lib参数,一切都按预期工作...... –
user1502353