【问题标题】:How to combine the Module Dependencies with the Dependencies of its parent Module with Mill如何将模块依赖关系与其父模块的依赖关系与 Mill 结合起来
【发布时间】:2020-08-16 19:10:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: scala mill


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      相关资源
      最近更新 更多