Как объединить зависимости модуля с зависимостями его родительского модуля с Mill - PullRequest
0 голосов
/ 02 мая 2020

Я хочу объединить зависимости модуля с данными из родительского модуля.

В моем 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 Ответ

1 голос
/ 02 мая 2020

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

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

...