class加载程序无法加载 classes 实现此模块的 class
classLoader can't load classes implementing a class out of this module
我正在尝试使用以下 class 加载程序在我的 Maven 插件中加载特定的 classes:
public ClassLoader getClassLoader(MavenProject project) {
try
{
List classpathElements = project.getCompileClasspathElements();
URL urls[] = new URL[classpathElements.size()];
for ( int i = 0; i < classpathElements.size(); ++i ) {
urls[i] = new File( (String) classpathElements.get( i ) ).toURL();
}
return new URLClassLoader( urls, this.getClass().getClassLoader() );
} catch ( Exception e ) {
System.out.println( "Couldn't get the classloader." );
return this.getClass().getClassLoader();
}
}
这个加载器在一个简单的测试项目中工作得很好。但是当我在多模块项目中使用它时,它不会加载特定的 classes。在另一个模块中实现 class 的 classes(例如 CardlessFacadeBean implements CardlessFacade
,CardlessFacadeBean class 在这个模块中,CardlessFacade class 在另一个模块中)。但没有此条件的其他 classes 加载正常。有什么办法可以简单地解决这个问题吗?非常感谢
我只是将另一个模块类路径添加到类路径元素列表中,如下所示,它识别出提到的 类。
classpathElements.add(moduleDirectory);
任何其他解决方案将不胜感激。
我正在尝试使用以下 class 加载程序在我的 Maven 插件中加载特定的 classes:
public ClassLoader getClassLoader(MavenProject project) {
try
{
List classpathElements = project.getCompileClasspathElements();
URL urls[] = new URL[classpathElements.size()];
for ( int i = 0; i < classpathElements.size(); ++i ) {
urls[i] = new File( (String) classpathElements.get( i ) ).toURL();
}
return new URLClassLoader( urls, this.getClass().getClassLoader() );
} catch ( Exception e ) {
System.out.println( "Couldn't get the classloader." );
return this.getClass().getClassLoader();
}
}
这个加载器在一个简单的测试项目中工作得很好。但是当我在多模块项目中使用它时,它不会加载特定的 classes。在另一个模块中实现 class 的 classes(例如 CardlessFacadeBean implements CardlessFacade
,CardlessFacadeBean class 在这个模块中,CardlessFacade class 在另一个模块中)。但没有此条件的其他 classes 加载正常。有什么办法可以简单地解决这个问题吗?非常感谢
我只是将另一个模块类路径添加到类路径元素列表中,如下所示,它识别出提到的 类。
classpathElements.add(moduleDirectory);
任何其他解决方案将不胜感激。