gil*_*cu2 3 scala sbt sbt-assembly
我遵循sbt-assembly:包括来自https://github.com/sbt/sbt-assembly中描述的配置的测试类,可以正常进行组装
当我加载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"
^
Run Code Online (Sandbox Code Playgroud)
因此,我注释了导入行并运行sbt:assembly,但它开始测试,但不生成任何-test- .jar。
有谁知道如何生成包含测试类的jar?谢谢
我必须删除此行(我认为它现在已基于https://github.com/sbt/sbt-assembly/blob/546d200477b64e2602beeb65bfa04306122cd9f5/Migration.md自动导入)
import sbtassembly.AssemblyKeys._
Run Code Online (Sandbox Code Playgroud)
我将其余的(即下面的两行)添加到build.sbt而不是assembly.sbt:
Project.inConfig(Test)(baseAssemblySettings)
jarName in (Test, assembly) := s"${name.value}-test-${version.value}.jar"
Run Code Online (Sandbox Code Playgroud)
完成这些步骤后,test:assembly确实为我生成了一个测试jar,但是我希望jar只包含测试类(类似于test:package),但它似乎也包括非测试类。换句话说,如果我有src / main / scala / Foo.scala和src / test / scala / FooTest.scala,那么我认为test:assembly生成的jar 只包含FooTest.class,但它似乎也包含Foo .class。希望这对您来说不是问题,因为我不确定如何解决该问题。
编辑:如果您想让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")})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1553 次 |
| 最近记录: |