在 Scala 和 SBT 中为 ServiceLoader 自动生成 META-INF/services

Automatic META-INF/services generation in Scala and SBT for 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 Auto Service,因为它不适用于 Scala 类 -- 参见 this comment on a realm-java github issue。)

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

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