为什么设置(在程序集中测试)会出现类型错误?

Why does setting (test in assembly) give type error?

我在多模块项目中使用 sbt 0.13.8 和 sbt-assembly 0.13.0。一切都很好,直到我尝试在组装过程中关闭测试。

按照文档中的说明,我添加了行

test in assembly := {}

在我的其中一个模块的设置中出现以下错误

/Users/lanny/work/IdeaProjects/Search/build.sbt:61: error: type mismatch;
 found   : sbt.TaskKey[sbt.File]
 required: java.io.File
      test in assembly := {},
          ^
sbt.compiler.EvalException: Type error in expression

我很乐意展示 'inspect test' 的结果,但遗憾的是,如果不删除导致错误的行,我就无法 运行 sbt。这是我看到的删除行的内容。

[info] Set current project to search-hadoop (in build file:/Users/lanny/work/IdeaProjects/Search/)
> inspect assembly::test
[info] Task: Unit
[info] Description:
[info]  Executes all tests.
[info] Provided by:
[info]  {file:/Users/lanny/work/IdeaProjects/Search/}hadoop/*:assembly::test
[info] Defined at:
[info]  (sbtassembly.AssemblyPlugin) AssemblyPlugin.scala:32
[info] Dependencies:
[info]  hadoop/test:test
[info] Reverse dependencies:
[info]  hadoop/*:assemblyPackageScala::test
[info]  hadoop/*:assemblyPackageDependency::test
[info]  hadoop/*:assembly
[info] Delegates:
[info]  hadoop/*:assembly::test
[info]  hadoop/*:test
[info]  {.}/*:assembly::test
[info]  {.}/*:test
[info]  */*:assembly::test
[info]  */*:test
[info] Related:
[info]  test/*:assemblyPackageDependency::test
[info]  third_party/test:test
[info]  third_party/*:assemblyPackageDependency::test
[info]  search/*:assembly::test
[info]  search/*:assemblyPackageScala::test
[info]  server/*:assemblyPackageDependency::test
[info]  search/*:assemblyPackageDependency::test
[info]  server/test:test
[info]  hadoop/test:test
[info]  hadoop/*:assemblyPackageScala::test
[info] ...
sbt.Keys.test in assembly := {}

成功了。

documentation 中所述,对于 sbt 0.13.6+,将此行添加到您的 project/assembly.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.2")