在Scala中自动生成META-INF /服务,在ServiceLoader中生成SBT

时间:2015-10-22 13:17:24

标签: scala sbt annotation-processing serviceloader

在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。)

1 个答案:

答案 0 :(得分:1)

请考虑使用https://github.com/nyavro/spi-plugin

此插件中使用的方法与使用注释不同 - 它使用整个包作为接口源并应用于接口实现的包。