【问题标题】:Deploying simple scala app(non-webapp) managed with maven部署使用 maven 管理的简单 Scala 应用程序(非 Web 应用程序)
【发布时间】:2010-01-12 22:48:05
【问题描述】:

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

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

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

【问题讨论】:

  • 这是电梯吗?您谈到依赖关系时,就好像您不知道它们到底是什么一样。
  • 我只是假设它们无关紧要。一些包,如 twitter4j 等

标签: maven-2 deployment scala maven


【解决方案1】:

我倾向于使用 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")
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-03
      • 2019-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 2012-08-30
      • 2011-11-17
      相关资源
      最近更新 更多