在Scala和SBT中,有没有办法自动生成META-INF/services/*
资源文件供java.util.ServiceLoader
稍后通过注释类使用,如Google Auto Service对Java项目的作用?
即
package foo.bar
import my.exported.ServiceInterface
@AutoService[ServiceInterface]
class MyService extends ServiceInterface{
// …
}
在资源文件夹中自动生成文件META-INF/services/my.exported.ServiceInterface
。该文件将包含:
foo.bar.MyService
(我认为我不能直接使用Google自动服务,因为它不适用于Scala类 - 请参阅this comment on a realm-java github issue。)
答案 0 :(得分:1)
请考虑使用https://github.com/nyavro/spi-plugin。
此插件中使用的方法与使用注释不同 - 它使用整个包作为接口源并应用于接口实现的包。