我想在maven项目中使用不同模块之间的服务ServiceLoader。我有一个名为iMage的父模块。在父模块中有一个名为jmjrst.main的模块,它有一个名为' JmjrstPlugin'的公共抽象类。
然后还有另一个名为prizm-plugin的模块,其中包含以下类: 公共类HelloWorldPlugin扩展了JmjrstPlugin {...}。我添加了jmjrst.main作为prizm-plugin的依赖项,反之亦然。
为了使用ServiceLoader,我想使用META-INF/services generator。 我将以下行添加到prizm-plugin的pom.xml中:
$res = $leadsquared->create_lead($data);
print_r($res);
类HelloWorldPlugin就是这样开始的:
<dependency>
<groupId>org.kohsuke.metainf-services</groupId>
<artifactId>metainf-services</artifactId>
<version>1.1</version>
<optional>true</optional>
</dependency>
在META-INF/services generator上的网站上:&#34;在JavaSE6中使用javac时,会自动生成META-INF / services / *文件。不需要额外的编译器开关。该库也正确处理增量编译。&#34;
在我的情况下,没有生成任何内容。有人可以帮我吗?
答案 0 :(得分:0)
从您的班级HelloWorldPlugin
的代码段中,不清楚哪个界面是“合同”。在您提供的链接中:
如果您有多个接口和/或基本类型,则库无法推断合同类型。在这种情况下,通过将合约类型提供给@MetaInfServices ..
来明确指定合同类型
首先,您必须确定要实现的合同,如果父类实现了多个,那么您需要明确说明@MetaInfServices
注释中的哪一个。
这是我想的第一件事。