Java 重置maven插件的类加载器

Java 重置maven插件的类加载器,java,classloader,maven-plugin,Java,Classloader,Maven Plugin,我构建了一个maven插件,并修改了它的类加载器,以便能够获取资源并创建我正在执行插件的模块的类对象。因此,当我在一个模块上执行插件时,一切都很好,但是当我在运行根项目的构建时在几个子模块上执行插件时,问题就出现了。因此,第一次执行很好,但是当它继续到第二个模块时,它似乎保留了第一次执行的类加载器修改,因为我在两个模块中有两个同名的文件,我将它们作为类加载器的资源,它总是在第一次添加时加载第一个文件。这让我觉得插件的执行是在一个进程中,只有一个类加载器。所以我想的是,我必须在每次执行时以某种方式

我构建了一个maven插件,并修改了它的类加载器,以便能够获取资源并创建我正在执行插件的模块的类对象。因此,当我在一个模块上执行插件时,一切都很好,但是当我在运行根项目的构建时在几个子模块上执行插件时,问题就出现了。因此,第一次执行很好,但是当它继续到第二个模块时,它似乎保留了第一次执行的类加载器修改,因为我在两个模块中有两个同名的文件,我将它们作为类加载器的资源,它总是在第一次添加时加载第一个文件。这让我觉得插件的执行是在一个进程中,只有一个类加载器。所以我想的是,我必须在每次执行时以某种方式重置类加载器。因此,我尝试了以下几点:

Thread.currentThread().setContextClassLoader(new URLClassLoader(new URL[0], null));

这是因为我看到当您将它设置为null时,它应该使用引导类加载器。但不幸的是,它没有起作用。有人知道如何重置类加载器吗?

新建URL[0],从大小为0的数组中可以得到什么帮助?没有帮助,但正如我所见,这是包含要添加到类路径的lib的数组。因为我不想添加任何内容,所以我将其设为空,因为with null会抛出NPE。