1

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

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

任何指针/资源都将得到重视!提前感谢一堆帮助菜鸟!:)

4

2 回答 2

2

我倾向于使用 Maven App Assembler 插件来打包依赖项、我自己的代码并创建启动脚本。Sonatype的优秀Maven 书中描述了基本使用。

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

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

package sample

object Main {
  def main(args: Array[String]) = println("hello world")
}
于 2010-01-13T06:48:16.630 回答
1

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

于 2010-01-13T14:54:59.487 回答