classLoader无法在此模块之外加载实现类的类

问题描述 投票:0回答:1

我正在尝试使用下面的类加载器在我的maven插件中加载特定的类:

 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();
    }
}

此加载器在一个简单的测试项目中可以正常工作。但是当我在多模块项目中使用它时,它不会加载特定的类。在另一个模块中实现一个类的类(例如CardlessFacadeBean implements CardlessFacade,CardlessFacadeBean类在此模块中,而CardlessFacade类在另一个模块中)。但其他不具有此条件的类可以很好地加载。有什么办法可以简单地解决这个问题?非常感谢

java classloader maven-plugin multi-module
1个回答
0
投票

我只是将另一个模块类路径添加到类路径元素列表,如下所示,它可以识别提到的类。

classpathElements.add(moduleDirectory);

任何其他解决方案将不胜感激。

© www.soinside.com 2019 - 2024. All rights reserved.