介绍
我正在尝试创建多个对输入进行模糊测试的服务(出于测试目的。我正在使用依赖注入的概念java.util.ServiceLoader<T>
。我在这个项目中使用 IntelliJ。
Github 项目链接:https ://github.com/ghoshabhi/java-service-loader
问题
我创建了一个META-INF/services
目录,其中包含一个文件:htmlfuzzing.spi.HtmlFuzzer
提及我的实现类 ( htmlfuzzing.TagReplacer
) 的路径。我试图创建一个类似于Oracle 网站上的示例的结构。
我还继续将META-INF
目录标记resources
为Project Settings > Modules
:
这是我的output
目录的样子:
正如您在上面看到的,实现类的类文件没有添加到out/
目录中。
这是我的完整目录结构:
问题
我显然在这里做错了什么,但我无法理解是什么。META-INF
将目录添加或标记为resources
的正确方法是什么,或者包含所有服务实现类的正确方法是什么?
任何有关解决此问题的帮助或提示表示赞赏。
编辑 - 1
添加src/resource
文件夹并将META-INF
目录放在其中。但是我仍然没有在out
目录中看到实现类的类文件。
此外,我注意到的一件事是,一旦我将任何目录标记为resource
项目结构中的目录 - 它就会从左侧的项目视图中消失。有什么奇怪的地方吗?