gpt4 book ai didi

java - 从引用的库中使用时,未配置Scanner TypeAnnotationsScanner

转载 作者:行者123 更新时间:2023-12-03 14:00:24 28 4
gpt4 key购买 nike

我有一个使用org.reflections.Reflections在类路径中的类中获取批注的类。

当我在同一项目中使用它时,一切正常,但是当我将其导出为JAR并将其引用到其他类中时,将得到以下执行:

Exception in thread "main" org.reflections.ReflectionsException: Scanner TypeAnnotationsScanner was not configured
at org.reflections.Store.get(Store.java:39)
at org.reflections.Store.get(Store.java:61)
at org.reflections.Store.get(Store.java:46)
at org.reflections.Reflections.getTypesAnnotatedWith(Reflections.java:429)

这是代码片段:
        System.out.println("Package to Scan: "+getPackageName());
final Reflections reflections = new Reflections(getPackageName(), new TypeAnnotationsScanner());
final Set<Class<?>> handlerClasses = reflections.getTypesAnnotatedWith(HandlerMapping.class,true);

我确实提供了 TypeAnnotationsScanner对象,但问题仍然存在。

注意:仅当上述代码称为jar时,它才起作用。 (我使用maven-assembly插件创建了一个 fat jar )

有指针吗?

最佳答案

也许不是人们想听到的答案类型,但reflections版本0.9.12包含一个此处描述的错误:https://github.com/ronmamo/reflections/issues/273

此PR中提供了错误修正(尚未合并):https://github.com/ronmamo/reflections/pull/278
0.9.110.9.12版本之间的主要区别在于,在0.9.12中,删除了Guava依赖项,以支持Java 8 Streams API。

如果您需要不包含Guava传递依赖项而包含此依赖项,则可以查看下一个项目:https://github.com/aschoerk/reflections8
当前,reflections8的最新可用版本是0.11.7
注意,由于reflections80.9.12版本,现在reflections已被淘汰,但其版本0.11.7不包含此错误,并且此版本不依赖于Guava。因此,可能的解决方案是切换到net.oneandone.reflections8:reflections8:0.11.7

关于java - 从引用的库中使用时,未配置Scanner TypeAnnotationsScanner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60559501/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com