【问题标题】:How to run Maven on startup as a daemon or standalone如何在启动时将 Maven 作为守护进程或独立运行
【发布时间】:2012-11-25 05:38:50
【问题描述】:

如何在我的服务器启动后立即运行 Maven? 服务器运行后可以使用 cron 执行脚本吗?或者这是一个不好的做法? 我正在使用 Jetty 和 Resteasy 并在 Maven 上运行它们来启动我的网络服务器。

当我的服务器启动时,Maven 自动启动的最佳解决方案是什么? 使用的命令是:

mvn jetty:run -e

编辑: 我正在使用 Amazon EC2 启动一个实例,并且我希望在启动实例后立即运行 maven 构建。 Maven 构建并运行 Resteasy、Jetty 和 pom.xml 文件中规定的其他一些依赖项。

【问题讨论】:

  • Reza,在你的服务器启动后,你想让 maven 为你做什么? jetty:run 将在端口 8080 上启动码头运行。查看插件页面了解更多信息:docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin
  • 使用 Jenkins 之类的工具来运行 Maven 构建并在启动时使用 Jenkins API 调用 Jetty 作业会更简单吗?
  • 谢谢@mohammadshamsi 请看一下关于问题的编辑。从技术上讲,当我使用 Maven 并运行 mvn jetty:run -e 时,服务器会从我的 shell 上的所有配置开始。但我想把它作为一个守护进程或在启动时运行 mvn jetty:run -e 这样我就不必手动连接到服务器并运行命令。
  • @Reza 如果您需要经常构建和运行它们,请考虑使用 Jenkins (Hudson) 构建和运行您的 Maven 构建。

标签: java linux maven jetty resteasy


【解决方案1】:

您可以使用特定于操作系统的初始化脚本方法。可以在here 找到一个非常好的 Ubuntu OS 答案。

【讨论】:

    【解决方案2】:

    通常,您将 Maven 用作构建工具,而不是部署工具。

    你想完成什么?如果你只是想启动 Jetty,它有自己的初始化脚本,如果你启用它们,它会在启动时启动。

    除非有令人信服的理由为此使用 Maven,否则我会让您的 Maven 构建过程创建一个“可执行单元”,例如可执行 JAR、WAR 等,然后在启动时启动它。

    【讨论】:

    • 我使用 Maven 进行部署的原因基本上是:我们正在亚马逊上部署大量机器,并且构建(代码)经常更改(每小时)。这个概念是我们希望在云上运行时对代码进行演化。
    • 我建议使用 Jenkins 或一些类似的工具来构建、分发它们并运行已完成的构建。更容易准确跟踪正在发生的事情。
    猜你喜欢
    • 2012-11-23
    • 2023-03-02
    • 1970-01-01
    • 2015-07-12
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多