我想在maven項目中的不同模塊之間使用ServiceLoader服務。我有一個名爲iMage的父模塊。在父模塊中有一個名爲jmjrst.main的模塊,它有一個名爲'JmjrstPlugin'的公共抽象類。Maven中不同模塊之間的ServiceLoader和META-INF/services發生器?
然後還有另一個模塊叫做prizm-plugin,它帶有以下類: 公共類HelloWorldPlugin擴展了JmjrstPlugin {...}。我將jmjrst.main添加爲prizm-plugin和vica的依賴項。
爲了使用ServiceLoader,我想使用META-INF/services generator。 添加以下行PRIZM,插件的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網站雲:「當你使用javac在JavaSE6中,META-INF/services/*文件是自動生成的,不需要額外的編譯器開關,該庫也可以正確處理增量編譯。
在我的情況下,什麼都沒有生成。有人可以幫助我嗎?
那裏只有一種基本類型。但我已經試過這種方式: @MetaInfServices(JmjrstPlugin.class) 公共類HelloWorldPlugin擴展JmjrstPlugin {...} 現在仍然成功 –