部署使用maven管理的简单scala应用程序(非webapp)

时间:2010-01-12 22:48:06

标签: maven-2 deployment scala maven

我一般都是java / scala堆栈的新手。到目前为止,我有一个相对简单的scala应用程序(不是webapp)设置和使用maven2构建的构建,我希望能够将输出部署到一个或多个生产服务器(EC2上的ubuntu,但这无关紧要我猜)?

我的主要问题是: 1)在生产服务器上安装所有相关(第三方)jar的最佳方法是什么? maven负责在我的开发盒上安装它们,它是如何工作的? 2)我可以使用mvn scala运行我的应用程序:运行,但是在生产中启动应用程序的正确方法是什么? 3)如何处理后续部署?

任何指针/资源都会受到关注!非常感谢帮助一个菜鸟! :)

2 个答案:

答案 0 :(得分:2)

我倾向于使用Maven App Assembler plugin打包依赖项,我自己的代码,并创建启动脚本。 Sonatype的优秀Maven book中描述了基本用法。

为了获得最大的灵活性,它可以生成Java Service Wrapper脚本,这些脚本允许应用程序作为命令行应用程序,Windows服务或Unix守护程序运行。

此方法并非特定于Scala应用程序。您只需要知道应用程序的主要类,例如sample.Main $代码如下。

package sample

object Main {
  def main(args: Array[String]) = println("hello world")
}

答案 1 :(得分:1)

retronym的答案看起来是最好的解决方案但是如果你只是想要一些非常简单的东西,你可以使用Maven assembly插件。你要做的就是将它作为一个插件添加到你的pom.xml然后做mvn assembly:assembly它会构建一个包含所有依赖项(包括scala lib)的jar。因此,您可以使用java -cp my.jar MyMainClass运行应用程序。