如何将模块依赖项与其父模块的依赖项与Mill相结合

  • 本文关键字:依赖 模块 Mill 相结合 scala mill
  • 更新时间 :
  • 英文 :


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

我的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

有没有办法做到这一点,或者我必须列出每个子模块中的模块依赖关系?

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

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

相关内容

  • 没有找到相关文章

最新更新