Java 如何在生成过程中包含自定义文本文件

Java 如何在生成过程中包含自定义文本文件,java,build-automation,serviceloader,Java,Build Automation,Serviceloader,最近我一直在编写插件,然后使用ServiceLoader加载插件。为了让ServiceLoader找到我的插件,我的jar中必须包含一个文本文件,位于META-INF/services/下。文本文件必须以ServiceLoader“寻找”的接口命名,并且必须包含实现类的规范名称。所有这些都工作得非常好,但是这种方法有一个非常恼人的问题:每次构建项目时,我都必须手动将/services/文件夹以及文本文件添加到jar中(使用Winrar)。这在开发过程中非常麻烦,因为我必须不断地重新构建项目以进行

最近我一直在编写插件,然后使用ServiceLoader加载插件。为了让ServiceLoader找到我的插件,我的jar中必须包含一个文本文件,位于META-INF/services/下。文本文件必须以ServiceLoader“寻找”的接口命名,并且必须包含实现类的规范名称。所有这些都工作得非常好,但是这种方法有一个非常恼人的问题:每次构建项目时,我都必须手动将/services/文件夹以及文本文件添加到jar中(使用Winrar)。这在开发过程中非常麻烦,因为我必须不断地重新构建项目以进行测试,这意味着我还必须手动添加文件夹和文本文件

我真的希望有一种方法可以让Java在构建项目时自动添加META-INF/services/文件夹和文本文件,因为这让我发疯了!)

顺便说一下,我正在使用Netbeans,它(afaik)在内部使用Ant来自动化构建过程。我想这些信息可能与我的问题有关

谢谢

右键单击“源程序包”,选择“新建|其他”

从“类别”树中,选择“其他”。从“文件类型”中选择“文件夹”

命名你的文件夹

中提琴:D


现在右键单击新文件夹并遵循相同的基本步骤,但是这次,使用“空文件”来创建文本文件

为什么不在“源代码包”中创建一个
META-INF/services
文件夹?哇,谢谢,这当然行!我以前曾尝试将META-INF作为一个包而不是文件夹添加,但由于连字符的缘故,无法正常工作。有时候我真的很蠢,幸好有像你这样的人可以帮忙;)再次感谢!我对我们的插件API使用了类似的方法;)