【发布时间】:2017-11-04 20:02:19
【问题描述】:
我想在 Maven 项目中的不同模块之间使用服务 ServiceLoader。我有一个名为 iMage 的父模块。在父模块中有一个名为 jmjrst.main 的模块,它有一个名为“JmjrstPlugin”的公共抽象类。
还有一个名为 prizm-plugin 的模块,它具有以下类: 公共类 HelloWorldPlugin 扩展了 JmjrstPlugin{ ... }。我还添加了 jmjrst.main 作为对 prizm-plugin 和 vica-versa 的依赖项。
为了使用 ServiceLoader,我想使用 META-INF/services generator。 我在 prizm-plugin 的 pom.xml 中添加了以下行:
<dependency>
<groupId>org.kohsuke.metainf-services</groupId>
<artifactId>metainf-services</artifactId>
<version>1.1</version>
<optional>true</optional>
</dependency>
HelloWorldPlugin 类的开头是这样的:
@MetaInfServices(JmjrstPlugin.class)
public class HelloWorldPlugin extends JmjrstPlugin{ ... }
META-INF/services generator 上的网站上写道:“在 JavaSE6 中使用 javac 时,会自动生成 META-INF/services/* 文件。不需要额外的编译器开关。这个库也可以正确处理增量编译。”
在我的情况下,什么都没有生成。有人可以帮我吗?
【问题讨论】:
标签: java eclipse maven meta-inf serviceloader