首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用org.reflections扫描混凝土封装中的资源

用org.reflections扫描混凝土封装中的资源
EN

Stack Overflow用户
提问于 2017-09-11 18:49:48
回答 1查看 120关注 0票数 1

我使用org.reflections库在包中查找资源:

代码语言:javascript
复制
new Reflections(
    "test", //package prefix
    new ResourcesScanner()
).getResources(x -> x.endsWith(".xml"))

在添加类似名称的包之前,它工作得很好。

例如,它只是包test和添加的包test_second

代码语言:javascript
复制
| 
+-+-[test]
| +--one.xml
| +--two.xml
|
+-+-[test_second]
  +--three.xml
  +--four.xml

现在,当我试图通过前缀扫描它时,两个包的资源都被找到了。

问题:如何使用这个库只扫描"test“包中的资源,而忽略所有带有"test”前缀的包?

EN

回答 1

Stack Overflow用户

发布于 2022-03-30 20:55:12

我知道,现在有点晚了,但是您必须在包前缀的末尾添加一个."test."。我们使用它有点不同,但解决了与您所遇到的问题完全相同的问题:

代码语言:javascript
复制
String location = "test.";
Collection<URL> urls = ClasspathHelper.forPackage(location);
Reflections reflections = new Reflections(new ConfigurationBuilder()
                    .setScanners(new ResourcesScanner())
                    .filterInputsBy(new FilterBuilder().includePackage(location))
                    .setUrls(urls));
Set<String> resources = reflections.getResources(x -> x.endsWith(".xml"));

注意:这个示例正在使用0.9.x。目前,我正致力于将这个迁移到0.10.x

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46162522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档