在IntelliJ中调试Web应用程序,由maven构建的webapp,由jetty运行

Tax*_*Noi 32 debugging web-applications jetty intellij-idea maven-jetty-plugin

我正在使用s/o代码,它是由maven构建的java webapp.webapp由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>
Run Code Online (Sandbox Code Playgroud)

我想附加IntelliJ的调试器,以便我可以单步执行代码.我尝试设置一个调试器配置,如:Jetty Server,然后是'Remote',但它说没有指定Application Server.我也试过'Local',它说'主配置文件不包括'.

那么我该怎么做才能附加调试器?提前致谢.

Kkk*_*kev 76

最简单的方法是:

  1. Maven Projects选项卡中展开项目.
  2. 展开Plugins> jetty项目.
  3. 右键单击jetty:run.
  4. 选择Debug从上下文菜单中.

  • 你如何使这个运行配置? (11认同)

小智 8

我知道这是来不及回答这个问题,但它是值得分享关于这个问题作为一个现代化的解决方案的最新更新:您还可以使用"跑码头mvnDebug jetty:run",它具有相同的效果.在终端中显示以下日志

Preparing to Execute Maven in Debug Mode
Listening for transport dt_socket at address: 8000
[INFO] Scanning for projects...
Run Code Online (Sandbox Code Playgroud)

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

  1. 打开Intellij
  2. 运行 - >编辑配置
  3. 在"运行/调试配置"窗口中,您需要单击(+)按钮以添加新配置
  4. 选择远程
  5. 按原样保留默认配置,只需将侦听端口更改为相应的端口(8000)即可.

请享用.