0

我想将模块依赖项与父模块中的依赖项结合起来。

我有以下内容build.sc

  trait ExampleModule extends ModuleWithTests {
    override def moduleDeps = Seq(camunda, cli)
  }    
  object twitter extends ExampleModule {
    override def moduleDeps = super.moduleDeps ++ Seq(twitterApi)
  }

这给了我:

build.sc:222: type mismatch;
 found   : Seq[build.this.ModuleWithTests]
 required: Seq[build.this.ModuleWithTests{def moduleDeps: Seq[build.this.ModuleWithTests]}]
    override def moduleDeps = super.moduleDeps ++ Seq(twitterApi)
                                               ^
build.sc:222: `T.command` definitions must have 1 parameter list
    override def moduleDeps = super.moduleDeps ++ Seq(twitterApi)
                 ^
Compilation Failed

有没有办法实现这一点,还是我必须列出每个子模块中的模块依赖项?

4

1 回答 1

1

您的示例几乎是正确的,但是由于您省略了的显式返回类型,ExampleModule.moduleDeps因此编译器似乎Seq[ModuleWithTests]在这种情况下推断出了更具体的类型。看起来像你所有的模块camundacli也实现了这个特性。而twitterApi似乎没有实现它。

要修复编译错误,您可以尝试将显式返回类型添加Seq[JavaModule]ExampleModule.moduleDeps.

于 2020-05-02T10:03:56.777 回答