在IntelliJ中调试使用Maven构建的Web应用程序,由Jetty运行

37

我正在使用s/o代码,它是由maven构建的Java Web应用程序。Web应用程序通过以下方式运行maven脚本,并在localhost:8080上运行:

<build>
        <plugins>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.8.v20121106</version>
                <configuration>
                    <contextPath>/</contextPath>
                    <connectors>
                        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                            <!--<port>8085</port>-->
                            <port>8080</port>
                            <maxIdleTime>60000</maxIdleTime>
                        </connector>
                    </connectors>
                    <stopKey>stop</stopKey>
                    <stopPort>8089</stopPort>
                </configuration>
            </plugin>            
        </plugins>
</build>

我想附加IntelliJ的调试器,以便我可以逐步执行代码。我尝试设置调试配置,例如:Jetty服务器,然后选择“远程”,但它会显示“未指定应用程序服务器”。我也尝试了“本地”选项,但它显示“未包括主配置文件”。
那么,我需要做什么才能附加调试器呢? 提前感谢您的帮助。

请查看此答案:https://dev59.com/RW7Xa4cB1Zd3GeqPo1o1#14835111。 - CrazyCoder
3个回答

82
最简单的方法是:
  1. Maven 项目 标签中展开您的项目。
  2. 展开 插件 > jetty 项。
  3. 右键单击 jetty:run
  4. 从上下文菜单中选择 Debug

screen shot of "Maven Projects" panel, context-menu to run Jetty in debug mode


12
怎样将这个设为运行配置? - t-my
我可以为在macOS上使用IntelliJ 2018.2的这种方法进行担保。 - Basil Bourque

11

我知道回答这个问题已经太晚了,但是分享最新的解决方案也很值得:你也可以使用“mvnDebug jetty:run”来运行Jetty,这具有相同的效果。它会在终端显示以下日志:

Preparing to Execute Maven in Debug Mode
Listening for transport dt_socket at address: 8000
[INFO] Scanning for projects...

记得选择正确的套接字地址(例如8000),然后:

  1. 打开Intellij
  2. 运行->编辑配置
  3. 在运行/调试配置窗口中,您需要点击(+)按钮以添加新配置
  4. 选择远程
  5. 保持默认配置不变,只需将监听端口更改为相应的端口号(8000)。

享受吧。


1
只要回答得好,回答一个问题(当然是与主题相关的问题)永远不会太晚。 - Andras Deak -- Слава Україні
肯定这应该是最佳答案。 - manasouza
这绝对是需要远程调试时的最佳答案! - sergpank
@sergpank,很高兴看到这个答案有帮助。谢谢 :) - Ahmad AlMughrabi

1
当我看到“未包括主配置文件”时,是因为我的应用服务器配置(在运行/调试配置对话框中)中的Jetty路径在我的OS X升级期间被删除了(我将其放在/usr/share/java中)。
我在/usr/local下重新安装了jetty-hightide-8.1.5.v20120716,更新了配置,一切正常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接