Как объединить зависимости модуля с зависимостями его родительского модуля с помощью 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

Есть ли способ добиться этого или мне нужно указать зависимости модулей в каждом дочернем модуле?

1 ответ

Решение

Ваш пример почти прав, но поскольку вы пропустили явный тип возврата ExampleModule.moduleDeps похоже, что компилятор определил более конкретный тип Seq[ModuleWithTests]в этом случае. Похоже, все твои модулиcamunda а также cliтакже реализовать эту черту. В то время какtwitterApi похоже, не реализует.

Чтобы исправить ошибку компиляции, вы можете попробовать добавить явный тип возврата Seq[JavaModule] к ExampleModule.moduleDeps.

Другие вопросы по тегам