【发布时间】:2016-05-17 01:42:34
【问题描述】:
我在 maven-antrun-plugin 中运行 AntTask 时遇到问题。不幸的是,AntTask 使用插件类加载器从项目中定位文件,但是从插件中运行时,构建输出不包含在插件的类路径中。
来自Guide to Maven Classloading:
请注意插件类加载器不包含 当前项目的依赖关系及其构建输出。
...
插件可以自行决定创建更多的类加载器。 例如,一个插件可能想要创建一个类加载器,它结合 插件类路径和项目类路径。
谁能指出我正确的方向如何创建我自己的 maven-antrun-plugin 版本,我可以在其中创建自己的类加载器,它结合了插件类路径和项目类路径?我需要更新类加载器,以便当我的自定义 antrun-plugin 调用执行的类时:
getClass().getClassLoader().getResource()
类加载器也会搜索构建输出文件夹。
【问题讨论】:
-
你想做什么?为什么要使用 maven-antrun-plugin?
-
@khmarbaise 我正在尝试将遗留的 ant 项目转换为 maven。不幸的是,ant build 的一部分使用了一个已失效的 Kodo Ant 任务来增强我没有找到 maven 等效的实体的 JDO。所以我只是想通过 maven-Antrim-plugin 调用 ant 任务。但正如我所解释的,该任务使用类加载器在类路径中定位属性文件。但是由于插件类加载器不包含构建源/输出,因此找不到它并且任务失败。修改 ant 任务并不是一个真正的选择,所以我想修改插件加载器的类路径。
标签: java maven plugins classloader maven-plugin