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