scala服务器传文件,部署没有依赖项的Scala二进制文件

有没有一种简单的方法可以将Scala Jar(~1MB)复制到服务器,然后让SBT获取所需的依赖项(~40MB)并运行它?

我已经看过sbt-onejar和sbt-assembly,但是这些将所有依赖项捆绑到一个jar中,在我的情况下变为~45MB,这需要很长时间才能上传到服务器.

目前我使用Capistrano从GitHub检出我的代码并编译它.然后我使用xsbt-start-script-plugin运行它 - 类似于Heroku管理它的方式.

问题是编译需要很长时间在服务器上(我正在使用EC2).带有~600MB冲头的EC2 Micro需要很长时间,有时会随机杀死该过程.我正在使用目前正在运行的EC2 Small实例(1.7GB ram),但随着代码库的增加而我添加了更多服务器,它可能会出现问题.

理想的工作流程是在本地(或在CI服务器上)编译Scala源,复制到服务器,让SBT引入自上次构建以来添加的其他依赖项(现有的将来自本地缓存的常春藤repo),然后为我提供一个简单的在Ubuntu 10.04上使用Upstart运行服务的脚本.

我还想了解其他Scala用户如何部署他们的代码.

(OP后来发布的"回答"代码)

FWIW这里是我的构建文件.

build.sbt

import com.typesafe.startscript.StartScriptPlugin

name := "XXX"

version := "0.1.0"

scalaVersion := "2.9.1"

resolvers += "XXX" at "http://repo.XXX.XXX"

libraryDependencies += "XXXX" %% "backend" % "0.1.0"

seq(StartScriptPlugin.startScriptForJarSettings: _*)

mainClass in Compile := Some("XXX.app.Main")

项目/ build.sbt

resolvers += Classpaths.typesafeResolver

addSbtPlugin("com.typesafe.startscript" % "xsbt-start-script-plugin" % "0.5.0")

addSbtPlugin("com.eed3si9n" % "sbt-dirty-money" % "0.0.1")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值