我正在使用sbt 0.10和Scala 2.9.1.
但是我不想要一个巨大的罐子.我只是希望依赖jar在target/scala-2.9.1.final/lib目录中结束.
之所以我不想要一个巨大的jar,那个项目使用了很多lib,而且通常只有应用程序.jar会发生变化.然而,由于这是多语言项目,并非所有团队成员都有scala或sbt,因此jars只是提交给git.拥有一个巨大的dar更新规则将膨胀回购规模.
我该如何复制这些依赖项?;)
Fre*_*ois 14
您没有指定复制配置的常春藤配置,但这是一个完整的工作示例,它将所有托管依赖项复制到该target/<scala version>/lib文件夹(scala版本由crossTarget任务提供).只需复制它并将其放入文件project/Build.scala(或任何您想要的文件名):
import sbt._
import Keys._
object MyBuild extends Build {
lazy val copyDependencies = TaskKey[Unit]("copy-dependencies")
def copyDepTask = copyDependencies <<= (update, crossTarget, scalaVersion) map {
(updateReport, out, scalaVer) =>
updateReport.allFiles foreach { srcPath =>
val destPath = out / "lib" / srcPath.getName
IO.copyFile(srcPath, destPath, preserveLastModified=true)
}
}
lazy val root = Project(
"root",
file("."),
settings = Defaults.defaultSettings ++ Seq(
copyDepTask
)
)
}
Run Code Online (Sandbox Code Playgroud)
如果需要特定配置,请替换
updateReport.allFiles通过updateReport.select(configuration = Set("compile"))或任何常春藤配置你想要的.
| 归档时间: |
|
| 查看次数: |
2564 次 |
| 最近记录: |