我说的是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());