我正在使用maven-jetty-plugin快速运行和调试我在Eclipse / m2eclipse下开发的WebApp。 它启动正常,我可以完全使用调试器,但我无法正常停止应用程序。
当我在控制台视图中执行ctrl + c时它虽然在启动器配置中没有做任何事情"分配控制台"已启用。
在简单的java项目中,ctrl + c选项工作正常(在Windows上测试)。所以它似乎是一些远程/嵌入式jvm问题。我的应用程序使用持久性JMS队列,因此每次重启后我都需要手动终止其他服务器上的会话。这不是非常敏捷。
任何人都知道问题的根源是什么?或者可能有一些已知的解决方法吗?
答案 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
mvn jetty:run
解决方法2