我正在尝试编写一个maven插件,当添加到项目中时,将检测此项目的类字节码。我面临的问题是,ASM(用于JVM字节码操作的工具)试图加载它正在加载的类,因为某些原因,ASM jar的类加载器缺少这些类,因为它们是在我的maven插件前几秒编译的在当前项目的target / classes目录中执行和liying。
如何将当前项目的目标/ classes目录附加到maven插件执行类路径?
答案 0 :(得分:2)
由于 Maven 3 ,插件类加载器更加孤立。它只包含插件依赖项。 不包含当前项目依赖项或构建输出。关于此事的官方文件See here。
您必须创建一个包含所需内容的类加载器。 Maven API提供了几种获取所需内容的方法,see for instance some examples in that SO thread)。 你肯定也可以从maven-exec-plugin的最新版本中获得很好的例子,这显然必须处理这个问题。