Java 类加载器看起来不像';外部';maven依赖项

Java 类加载器看起来不像';外部';maven依赖项,java,maven,reflection,Java,Maven,Reflection,在一个与maven模块X没有依赖关系的maven模块中,我试图从模块X加载一个类。这可能吗?我不能添加依赖项(循环),在我的情况下,反射是必要的 使用FilesUtils,我可以找到de文件,这里没有问题。但是,我尝试运行一些测试,以确定是否可以加载具有路径的类,但到目前为止没有结果 Classloader和URLClassloader都在我的maven模块中被实例化,下面的操作不起作用 urls = new URL[]{ new File("biz-t

在一个与maven模块X没有依赖关系的maven模块中,我试图从模块X加载一个类。这可能吗?我不能添加依赖项(循环),在我的情况下,反射是必要的

使用FilesUtils,我可以找到de文件,这里没有问题。但是,我尝试运行一些测试,以确定是否可以加载具有路径的类,但到目前为止没有结果

Classloader和URLClassloader都在我的maven模块中被实例化,下面的操作不起作用

urls = new URL[]{
                new File("biz-test/target/classes").toURI().toURL(),
                new File("biz/target/test-classes").toURI().toURL(),
            };
Classloader cl = new URLClassloader(urls);
还以多种方式尝试了Class.forName(完整路径,将linux/替换为,。仅限类,仅限包路径)

我读过谷歌反射库,但这是一个非常大的库?这有什么缺点吗


我的最后一个选择是将此生成器移动到一个可以访问所有必需依赖项的模块。

如果您有循环依赖项,则需要重构代码。您要么需要将两个模块合并为一个模块,要么需要为两个模块创建一个公共依赖项


试图通过使用类加载器或反射来绕过循环依赖是错误的方法。

你能更详细地解释一下吗:`I cant add a dependency(cycle)`这意味着你的设置是错误的,或者代码必须是错误的。重构成单独的模块…看起来很像一个XY问题。你的尝试似乎完全错了。值得详细说明的是:“我不能添加依赖项(循环)”。骑自行车去哪里?您的代码取决于模块X,模块X也取决于您的代码?为什么会这样?这两个模块应该做什么?“在我的情况下,反思是必要的”为什么?为什么?这个循环是正确的,我应该进一步调查。模块x不应依赖于装有devTools的模块。我接受得太快了。反射,因为我为元数据建立了一个db连接,它告诉我要加载什么类以及要遵循什么“规则”*关于循环的注释是正确的,所以循环不是;)似乎有一个模块误用了这个工具模块,所以这似乎是正确的答案!