如何在SBT中打包,归档,收集,复制或组装测试依赖项?

时间:2015-02-10 17:15:34

标签: scala sbt

似乎无法在SBT中找到如何做这个非常简单的事情:我想打包(或打包/汇编/存档/复制)运行测试所需的所有依赖项。理想情况下,这将包括所有依赖项jar和项目类jar在某些tar / gz / zip中,但只是将它们复制到一个文件夹中,这样我就可以轻松地将它们压缩起来会很棒。到目前为止,我发现的只是简单列出类路径的能力(' show test:dependencyClasspath')但是这让我不得不编写一个脚本来复制或归档它们。 sbt-pack非常适合常规运行时类路径依赖,但无法使其与任何测试依赖项一起使用,并且与sbt-assembly有相同的问题。

1 个答案:

答案 0 :(得分:0)

如果需要,可以通过覆盖一些选定的设置来重用sbt-pack的大多数部分来引用测试类路径。

在您的构建中,添加:

packSettings

packAllClasspaths <<= (thisProjectRef, buildStructure) flatMap getFromAllProjects(dependencyClasspath in Test),
packAllUnmanagedJars <<= (thisProjectRef, buildStructure, packExclude) flatMap getFromSelectedProjects(unmanagedJars in Test),
packLibJars <<= (thisProjectRef, buildStructure, packExclude) flatMap getFromSelectedProjects(packageBin in Test)

但是,您还需要从sbt-pack代码中复制those methods以使其正常工作。 这可能不是最干净的方法,但是你要避免自己重新实施包装过程。

IMO,您最好的选择是使用sbt-native-packager,它可以更灵活地定义您的包和您放入其中的文件。

相关问题