如何将模块依赖关系与其父模块的依赖关系与 Mill 结合起来
How to combine the Module Dependencies with the Dependencies of its parent Module with 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
的显式 return 类型,在这种情况下编译器似乎推断出更具体的 Seq[ModuleWithTests]
类型。看起来你的所有模块 camunda
和 cli
也都实现了这个特性。而 twitterApi
似乎没有实现它。
要修复编译错误,您可以尝试将显式 return 类型 Seq[JavaModule]
添加到 ExampleModule.moduleDeps
。
我想将模块依赖项与父模块的依赖项结合起来。
我的 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
的显式 return 类型,在这种情况下编译器似乎推断出更具体的 Seq[ModuleWithTests]
类型。看起来你的所有模块 camunda
和 cli
也都实现了这个特性。而 twitterApi
似乎没有实现它。
要修复编译错误,您可以尝试将显式 return 类型 Seq[JavaModule]
添加到 ExampleModule.moduleDeps
。