Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sbt 0.10下收集依赖项(将所有依赖项jar放到target/scala version/lib/)_Scala_Sbt - Fatal编程技术网

在sbt 0.10下收集依赖项(将所有依赖项jar放到target/scala version/lib/)

在sbt 0.10下收集依赖项(将所有依赖项jar放到target/scala version/lib/),scala,sbt,Scala,Sbt,我在Scala 2.9.1中使用sbt 0.10 我读过 但是我不想要一个大罐子。我只想要依赖罐子 在target/scala-2.9.1.final/lib目录中结束 我不想要一个大罐子的原因是,这个项目使用了很多 libs,并且通常只有application.jar更改。然而, 是多语言项目,并非所有团队成员都有scala或sbt, JAR刚刚提交给git。有一个巨大的房间 这将扩大回购规模 如何复制这些依赖项?;) 各种“Classpath”键包含类路径的不同视图,但最简单的方法可能是修

我在Scala 2.9.1中使用sbt 0.10

我读过

但是我不想要一个大罐子。我只想要依赖罐子 在target/scala-2.9.1.final/lib目录中结束

我不想要一个大罐子的原因是,这个项目使用了很多 libs,并且通常只有application.jar更改。然而, 是多语言项目,并非所有团队成员都有scala或sbt, JAR刚刚提交给git。有一个巨大的房间 这将扩大回购规模


如何复制这些依赖项?;)

各种“Classpath”键包含类路径的不同视图,但最简单的方法可能是修改sbt程序集插件,将JAR放入目录,而不是执行解压/重新压缩循环。该插件非常小(只有150行),粗略地看一下,很明显应该更改什么地方。

您没有指定要从中复制配置的常春藤配置,但这里有一个完整的工作示例,可以将所有托管依赖项复制到
target//lib
文件夹(scala版本由crossTarget任务提供)。只需复制此文件并将其放入文件
project/Build.scala
(或任何您想要的文件名):

导入sbt_
导入密钥_
对象MyBuild扩展了Build{
lazy val copyDependencies=TaskKey[Unit](“复制依赖项”)
def copyDepTask=copyDependencies
val destPath=out/“lib”/srcPath.getName
IO.copyFile(srcPath、destPath、preservelastmedited=true)
}
}
lazy val root=Project(
“根”,
文件(“.”),
设置=默认值。默认设置++顺序(
复制任务
)
)
}
如果需要特定配置,请更换

updateReport.allFiles
by
updateReport.select(configuration=Set(“compile”)
或任何您想要的常春藤配置。

请参阅任务xitrum包:

它将所有依赖项复制到目录target/xitrum\u包