(转)maven eclipse debug

时间:2023-03-08 18:24:07
(转)maven eclipse debug

准备工作:

a. 在pom.xml中配置jetty插件:

  1. <plugins>
  2. <plugin>
  3. <groupId>org.mortbay.jetty</groupId>
  4. <artifactId>maven-jetty-plugin</artifactId>
  5. <version>6.1.26</version>
  6. <configuration>
  7. <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
  8. <scanIntervalSeconds>6</scanIntervalSeconds>
  9. <contextPath>/prospect</contextPath>
  10. <webDefaultXml>jetty.xml</webDefaultXml>
  11. <jettyEnvXml>jetty-env.xml</jettyEnvXml>
  12. <connectors>
  13. <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
  14. <port>8080</port>
  15. <headerBufferSize>80000</headerBufferSize>
  16. </connector>
  17. </connectors>
  18. <stopKey>stop</stopKey>
  19. <stopPort>8089</stopPort>
  20. </configuration>
  21. </plugin>
  22. </plugins>
  1. <plugins>
  2. <plugin>
  3. <groupId>org.mortbay.jetty</groupId>
  4. <artifactId>maven-jetty-plugin</artifactId>
  5. <version>6.1.26</version>
  6. <configuration>
  7. <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
  8. <scanIntervalSeconds>6</scanIntervalSeconds>
  9. <contextPath>/prospect</contextPath>
  10. <webDefaultXml>jetty.xml</webDefaultXml>
  11. <jettyEnvXml>jetty-env.xml</jettyEnvXml>
  12. <connectors>
  13. <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
  14. <port>8080</port>
  15. <headerBufferSize>80000</headerBufferSize>
  16. </connector>
  17. </connectors>
  18. <stopKey>stop</stopKey>
  19. <stopPort>8089</stopPort>
  20. </configuration>
  21. </plugin>
  22. </plugins>

b. 使用maven的clean install命令将web及依赖工程打包成war文件。

方式1 - Eclipse调试:

①. 右键maven工程,在弹出的菜单中选择[Debug As],首次选择[Maven build...],以后选择[Maven build]来读取保存的配置启动:

(转)maven eclipse debug

②. 在浏览器输入地址http://localhost:8080/prospect/already/mosaic.htm,在代码上加断点,命中后IDE提示:Source not found:

(转)maven eclipse debug

解决:
点击[Edit Source Lookup Path...]添加源代码工程或目录

完成后即可调试代码:
(转)maven eclipse debug

方式2 - 远程调试:

①. 选择Eclipse的[Run]-[External Tools]-[External Tools Configurations...]菜单。

在打开的对话框中,新建一个Program,输入mvn.bat (mvnDebug.bat)的完整路径,指定要启动的web工程,在Arguments框输入jetty:run

(转)maven eclipse debug

使用mvn.bat时,需要添加调试参数:
切换到Environment选项,添加一个变量:
MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1066

注:address是和调试器通信的端口,不是服务的端口号。

(转)maven eclipse debug

其它参数:
-Xnoagent: 禁用默认sun.tools.debug调试器
-Djava.compiler=NONE: 禁止JIT编译器的加载
dt_shmem: 共享内存传输,仅限于Windows

点击[Run]启动jetty服务器

选择Eclipse的[Run]-[Debug Configurations...]菜单,在弹出的对话框中,新建一个Remote Java Application,指定和External Tools里面相同的工程和连接属性:

(转)maven eclipse debug

点击[Debug]启动调试客户端

(转)maven eclipse debug

②. 同方式1的②

附:
i. 远程调试的jvm可以独立于Eclipse运行:
(转)maven eclipse debug

这时Eclipse里只有调试客户端:
(转)maven eclipse debug

ii. 如果suspend=y,运行JVM而没有开启调试客户端,JVM会等待直到客户端就绪:
(转)maven eclipse debug

  • (转)maven eclipse debug
  • 大小: 61.6 KB
  • (转)maven eclipse debug
  • 大小: 20.3 KB
  • (转)maven eclipse debug
  • 大小: 29.4 KB
  • (转)maven eclipse debug
  • 大小: 42.9 KB
  • (转)maven eclipse debug
  • 大小: 64.5 KB
  • (转)maven eclipse debug
  • 大小: 54.8 KB
  • (转)maven eclipse debug
  • 大小: 16.9 KB
  • (转)maven eclipse debug
  • 大小: 20.2 KB
  • (转)maven eclipse debug
  • 大小: 12.8 KB
  • (转)maven eclipse debug
  • 大小: 6 KB