Tim*_*den 37 scala jar distribution sbt
我是新来的.我希望它将所有依赖jar飞行以及我的jar文件放在一个地方.SBT将运行该应用程序,但我已经散布了各种依赖项,并且.ivy文件夹中充满了我的jar文件间接依赖的东西.那么是否有一个简单的命令将它们全部复制到一个地方,以便我可以将它分发到另一台机器?
Cat*_*azz 13
将以下行添加到您的build.sbt文件中.
retrieveManaged := true
Run Code Online (Sandbox Code Playgroud)
这将在本地收集依赖项
小智 10
在您的构建文件中创建一个任务,如下所示:
lazy val copyDependencies = TaskKey[Unit]("pack")
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)
}
}
Run Code Online (Sandbox Code Playgroud)
将任务添加到项目中,如下所示:
lazy val HubSensors =
Project("HubSensors", file("HubSensors"), settings = shared ++ Seq(
copyDepTask,
resolvers ++= Seq(novusRels),
libraryDependencies ++= Seq(
jodatime
)
)) dependsOn(HubCameraVision, JamServiceProxy, HubDAL)
Run Code Online (Sandbox Code Playgroud)
在SBT控制台类型中:
project [Project Name]
pack
Run Code Online (Sandbox Code Playgroud)
小智 8
尝试sbt-pack插件https://github.com/xerial/sbt-pack,它收集target/pack文件夹中的所有依赖jar并生成启动脚本.