【问题标题】:How to get project classes from inside maven-plugin如何从 maven-plugin 中获取项目类
【发布时间】:2018-02-19 08:26:59
【问题描述】:

现在我正在为我们的项目目的开发一个 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

怎么了?

【问题讨论】:

  • 我认为目录url不应该包含包名,只是类所在的根目录
  • 您能否说出您的意图,因为您似乎正在尝试将运行时类加载到插件中
  • 谢谢你,@zapl。它有效。

标签: java maven class maven-plugin


【解决方案1】:

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

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

ClassLoader cl = new URLClassLoader(urls);

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

【讨论】:

    猜你喜欢
    • 2019-11-27
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多