如何从 maven-plugin 中获取项目 类

How to get project classes from inside maven-plugin

现在我正在为我们的项目开发一个 maven 插件。 该插件具有参数 dtoPackage,类似于 "com/blablabla/dto"。它包含有关 DTO 类 所在位置的信息。 另一个参数是 workingDirectory - 编译后的 类 目录,类似于 ${project.build.directory}/classes/.

然后我想从插件中的 DTO 包中获取 Class 个对象。我做什么:

URL[] urls = new URL[]{new URL("file:///" + workingDirectory.concat(dtoPackage))};

ClassLoader cl = new URLClassLoader(urls);

Class cls = cl.loadClass(dtoPackage.replaceAll("/", ".").concat(".DtoClassName"));

例外情况是:java.lang.ClassNotFoundException:com.blablabla.dto.DtoClassName

怎么了?

感谢用户zapl。无需将 workingDirectory 字符串与 dtoPackage 字符串连接起来。下面的代码按计划工作。

URL[] urls = new URL[]{new URL("file:///" + workingDirectory)};

ClassLoader cl = new URLClassLoader(urls);

Class cls = cl.loadClass(dtoPackage.replaceAll("/", ".").concat(".DtoClassName"));