我说的是reflections库。是否有可能获得我让代码编译的项目中包含的所有软件包的列表?

我已经尝试使用以下代码括弧,但是我不想插入项目名称。

Reflections reflections = new Reflections(/* Project name here... */);

     Set<Class<? extends Object>> allClasses =
         reflections.getSubTypesOf(Object.class);

最佳答案

不使用ronmamo / reflections而是使用Google Guava's ClassPath,可以执行以下操作:

Set<ClassInfo> classInfos = ClassPath.from(Main.class.getClassLoader()).getTopLevelClassesRecursive("org.spongepowered");
List<String> packageNames = classInfos.stream().map(classInfo -> classInfo.getPackageName()).distinct().collect(Collectors.toList());

10-07 23:58