最近我一直在写插件,然后我使用 ServiceLoader 加载这些插件。为了让 ServiceLoader 找到我的插件,必须在 META-INF/services/ 下的 jar 中包含一个文本文件。文本文件必须以 ServiceLoader 正在“寻找”的接口命名,并且必须包含实现类的规范名称。所有这些都工作得很好,但是这种方法有一个非常烦人的问题:每次构建项目时,我都必须手动将 /services/ 文件夹以及文本文件添加到 jar 中(使用 Winrar)。这在开发过程中非常麻烦,因为我必须不断地重新构建项目才能进行测试,这意味着我还必须添加文件夹和文本文件每次也用手。
我真的希望有一种方法可以让 Java 在构建项目时自动添加 META-INF/services/ 文件夹以及文本文件,因为这让我发疯了!:)
顺便说一句,我正在使用 Netbeans,它 (afaik) 在内部使用 Ant 来自动化构建过程。我想这些信息可能与我的问题有关。
谢谢!