Я уверен, что есть лучший способ, но вот как я заставил его работать:
Добавьте следующее в Javadoc в верхней части вашего mojo:
@requiresDependencyResolution runtime
Добавить параметр MavenProject:
/**
* @parameter expression="${project}"
* @required
* @readonly
*/
private MavenProject project;
Затем вы можете получить зависимости во время выполнения и создать свой собственный загрузчик классов:
List runtimeClasspathElements = project.getRuntimeClasspathElements();
URL[] runtimeUrls = new URL[runtimeClasspathElements.size()];
for (int i = 0; i < runtimeClasspathElements.size(); i++) {
String element = (String) runtimeClasspathElements.get(i);
runtimeUrls[i] = new File(element).toURI().toURL();
}
URLClassLoader newLoader = new URLClassLoader(runtimeUrls,
Thread.currentThread().getContextClassLoader());
Затем вы можете загрузить свой класс, используя этот новый загрузчик классов:
Class bundle = newLoader.loadClass("package.MyClass");