我跟随sbt-assemble :包括测试类来自中描述的配置https://github.com/sbt/sbt-assemble组装工作正常
当我加载 sbt 时我得到
assembly.sbt:5: error: reference to jarName is ambiguous;
it is imported twice in the same scope by
import sbtassembly.AssemblyKeys._
and import _root_.sbtassembly.AssemblyPlugin.autoImport._
jarName in (Test, assembly) := s"${name.value}-test-${version.value}.jar"
^
因此,我注释导入行并运行 sbt: assembly 但这开始测试但不生成任何-test-.jar.
有人知道如何生成包含测试类的 jar 吗?
谢谢
我必须删除这一行(我认为它现在是基于自动导入的https://github.com/sbt/sbt- assembly/blob/546d200477b64e2602beeb65bfa04306122cd9f5/Migration.md)
import sbtassembly.AssemblyKeys._
我将其余部分(即下面的两行)添加到构建.sbt代替汇编.sbt:
Project.inConfig(Test)(baseAssemblySettings)
jarName in (Test, assembly) := s"${name.value}-test-${version.value}.jar"
采取这些步骤后,测试:组装确实为我生成了一个测试 jar 但是我希望该 jar 只包含测试类(类似于测试:包),但它似乎也包括非测试类。换句话说,如果我有src/main/scala/Foo.scala and src/test/scala/FooTest.scala然后我想这个罐子是由测试:组装只会包括FooTest.class但似乎还包括Foo.class。希望这对您来说不是问题,因为我还不确定如何解决这个问题。
EDIT:如果您希望 jar 只包含来自src/test(就像我一样),然后您可以将以下内容添加到您的 build.sbt 中以过滤掉类路径上可能存在的所有其他内容:
fullClasspath in (Test, assembly) := {
val cp = (fullClasspath in (Test, assembly)).value
cp.filter({x => x.data.getPath.contains("test-classes")})
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)