终止在eclipse中运行的maven-jetty-plugin

时间:2012-12-27 16:31:25

标签: eclipse maven jetty m2eclipse

我正在使用maven-jetty-plugin快速运行和调试我在Eclipse / m2eclipse下开发的WebApp。 它启动正常,我可以完全使用调试器,但我无法正常停止应用程序。

当我在控制台视图中执行ctrl + c时它虽然在启动器配置中没有做任何事情"分配控制台"已启用。

在简单的java项目中,ctrl + c选项工作正常(在Windows上测试)。所以它似乎是一些远程/嵌入式jvm问题。我的应用程序使用持久性JMS队列,因此每次重启后我都需要手动终止其他服务器上的会话。这不是非常敏捷。

任何人都知道问题的根源是什么?或者可能有一些已知的解决方法吗?

2 个答案:

答案 0 :(得分:6)

如果你使用m2eclipse插件,你可以直接从eclipse运行maven。

1转到您的调试配置,并在maven build下创建一个新条目 2给它起个名字 3选择maven项目的基本目录 4为目标输入jetty:运行然后单击调试按钮。

一切都应该是好的。你可以从eclipse里面的控制台视图中杀死它。所有断点应该照常工作。

要从eclipse中正常关闭应用程序,您必须执行以下操作。 将以下配置添加到您的pom中以获取jetty插件。这里重要的部分是停止键和停止端口。

<configuration>
    <tmpDir>target/not/necessary</tmpDir>
    <webAppConfig>
        <contextPath>/${project.name}</contextPath>
    </webAppConfig>
    <stopPort>9966</stopPort> 
    <stopKey>jetty-stop</stopKey>
</configuration>

接下来为maven添加另一个运行配置,但这次将目标设置为jetty:stop。它将执行正常关闭。

为了使其更加自动化:目标可以设置为jetty:stop jetty:start。这样,如果进程没有运行,则会出现一个小警告,但启动过程将继续。否则 其他过程将被优雅地关闭,然后将启动serwer。

只需要一个命令,它可以通过一个快捷方式运行(运行最后一次构建),减少上下文切换。

答案 1 :(得分:1)

解决方法1

  1. 从命令提示符,cd到您的webApp项目(例如,主要的pom.xml)。
  2. 使用mvn jetty:run
  3. 从那里运行Jetty
  4. 用ctrl + c杀死就可以了! (至少使用Windows cmd)
  5. 解决方法2

    1. 安装VisualVM
    2. 新的VisualVM上的
    3. Install the Kill Application plugin
    4. 在VisualVM的列表中右键单击Jetty应用程序,然后点击应用程序&#39;