如何在 sbt 程序集中包含测试类和测试依赖项
How to include test classes and test dependencies in sbt asssembly
我需要用 sbt 程序集打包我的测试类、资源以及测试依赖项。
这个问题 sbt-assembly : including test classes 没有帮助 - test:assembly 仍然没有生成包含任何所需类的 jar。
请注意,我的设置当前如下所示:
FooBuild.scala:
lazy val cucumberAssemblySettings = assemblySettings ++ Seq(
mainClass in assembly := Some("cucumber.api.cli.Main"),
jarName in assembly := "cucumber.jar",
mergeStrategy in assembly := {
case "application.conf" => MergeStrategy.concat
case "logback.xml" => MergeStrategy.last
case x => defaultMergeStrategy(x)
}
)
关于子项目foo-cucumber
:
lazy val foo_cucumber = Project("foo-cucumber", file("foo-cucumber"))
.settings(defaultSettings: _*)
.settings(cucumberAssemblySettings: _*)
.dependsOn(
foo_test_server % "compile->compile;test->test",
foo_test_utils % "compile->compile;test->test"
)
即使我在上面的设置中附加(Test, assembly)
,我也只得到一个不包含测试类或依赖项的jar(其名称不是指定的,而是全名,带版本),无论我调用 sbt foo-cucumber/test:assembly
还是 sbt foo-cucumber/assembly
如何获得包含所有内容的 jar(编译和测试类和依赖项)
多模块项目的关键是这样设置:
.settings(inConfig(Test)(cucumberAssemblySettings): _*)
然后没有设置中有任何in (Test, assembly)
我需要用 sbt 程序集打包我的测试类、资源以及测试依赖项。
这个问题 sbt-assembly : including test classes 没有帮助 - test:assembly 仍然没有生成包含任何所需类的 jar。
请注意,我的设置当前如下所示:
FooBuild.scala:
lazy val cucumberAssemblySettings = assemblySettings ++ Seq(
mainClass in assembly := Some("cucumber.api.cli.Main"),
jarName in assembly := "cucumber.jar",
mergeStrategy in assembly := {
case "application.conf" => MergeStrategy.concat
case "logback.xml" => MergeStrategy.last
case x => defaultMergeStrategy(x)
}
)
关于子项目foo-cucumber
:
lazy val foo_cucumber = Project("foo-cucumber", file("foo-cucumber"))
.settings(defaultSettings: _*)
.settings(cucumberAssemblySettings: _*)
.dependsOn(
foo_test_server % "compile->compile;test->test",
foo_test_utils % "compile->compile;test->test"
)
即使我在上面的设置中附加(Test, assembly)
,我也只得到一个不包含测试类或依赖项的jar(其名称不是指定的,而是全名,带版本),无论我调用 sbt foo-cucumber/test:assembly
还是 sbt foo-cucumber/assembly
如何获得包含所有内容的 jar(编译和测试类和依赖项)
多模块项目的关键是这样设置:
.settings(inConfig(Test)(cucumberAssemblySettings): _*)
然后没有设置中有任何in (Test, assembly)