[color=#345286] 这里以 java web application 为例,容器为 jetty,使用 jetty maven plugin 来运行 java web application。[/color]
[list=1]
[*] [color=#345286][b]配置一个外部工具来运行 jetty:[/b]Run -> External Tools -> External Tools Configurations,选择 Program,点击 New 按钮。Name 就是新建的外部应用程序的名字,你随便起咯。[/color]
[list]
[*] [color=#345286][b]Main tab Location:[/b]你的 maven 的安装目录下 mvn 命令的完整路径,即 ${MAVEN_HOME}/bin/mvn.bat,这里填绝对路径就行了,我试了 %MAVEN_HOME%/bin/mvn.bat 貌似不起作用。[/color]
[*] [color=#345286][b]Main tab Working Directory:[/b]要调试的 maven 工程的目录,即 pom.xml 所在的目录。你可以通过下面的三个按钮(Browse Workspace, Brose File System, Variables)来选择,至于哪一个,随你咯。[/color]
[*] [color=#345286][b]Main tab Arguments:[/b]jetty:run。[/color]
[*] [color=#345286][b]Environment tab:[/b]新建一个 Environment varibles,Name 为 [b]MAVEN_OPTS[/b],Value 为 [b]-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y -Xms256m -Xmx512m[/b]。其中,如果 suspend=n 表示不调试,直接运行,这是不推荐的做法,最好写 y。注意,value 的 address 的值,在后续的 debug configuration 中需要用到,其实就是外部应用程序的监听端口。[/color]
[/list]
[*] [color=#345286][b]进行 debug 运行配置:[/b]Run -> Debug Configuration,选择 Remote Java Application,点击 New 按钮。Name 就是要调试的程序的名字,你随便起咯。[/color]
[list]
[*] [color=#345286][b]Connect tab Project:[/b]通过 browse 按钮选择要调试的工程,和上面新建外部应用程序的 Main tab 的 Working Directory 是一个道理。[/color]
[*] [color=#345286][b]Connect tab Connection Properties:[/b]由于外部应用程序就配置在本机,所以 Host 填 localhost 即可;Port 就是在新建外部应用程序的 Environment tab 新建的 MAVEN_OPTS 变量的值中 address 指定的值,即外部应用程序的监听端口。[/color]
[/list]
[*] [color=#008000][b]OK,现在可以在 eclipse 中设置断点来调试了。首先按照步骤 1 启动项目,然后运行刚刚新建的 Remote Java Application。如果不运行 Remote Java Application,那么只是运行,并不能达到调试的效果。[/b][/color]
[/list]
[list=1]
[*] [color=#345286][b]配置一个外部工具来运行 jetty:[/b]Run -> External Tools -> External Tools Configurations,选择 Program,点击 New 按钮。Name 就是新建的外部应用程序的名字,你随便起咯。[/color]
[list]
[*] [color=#345286][b]Main tab Location:[/b]你的 maven 的安装目录下 mvn 命令的完整路径,即 ${MAVEN_HOME}/bin/mvn.bat,这里填绝对路径就行了,我试了 %MAVEN_HOME%/bin/mvn.bat 貌似不起作用。[/color]
[*] [color=#345286][b]Main tab Working Directory:[/b]要调试的 maven 工程的目录,即 pom.xml 所在的目录。你可以通过下面的三个按钮(Browse Workspace, Brose File System, Variables)来选择,至于哪一个,随你咯。[/color]
[*] [color=#345286][b]Main tab Arguments:[/b]jetty:run。[/color]
[*] [color=#345286][b]Environment tab:[/b]新建一个 Environment varibles,Name 为 [b]MAVEN_OPTS[/b],Value 为 [b]-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y -Xms256m -Xmx512m[/b]。其中,如果 suspend=n 表示不调试,直接运行,这是不推荐的做法,最好写 y。注意,value 的 address 的值,在后续的 debug configuration 中需要用到,其实就是外部应用程序的监听端口。[/color]
[/list]
[*] [color=#345286][b]进行 debug 运行配置:[/b]Run -> Debug Configuration,选择 Remote Java Application,点击 New 按钮。Name 就是要调试的程序的名字,你随便起咯。[/color]
[list]
[*] [color=#345286][b]Connect tab Project:[/b]通过 browse 按钮选择要调试的工程,和上面新建外部应用程序的 Main tab 的 Working Directory 是一个道理。[/color]
[*] [color=#345286][b]Connect tab Connection Properties:[/b]由于外部应用程序就配置在本机,所以 Host 填 localhost 即可;Port 就是在新建外部应用程序的 Environment tab 新建的 MAVEN_OPTS 变量的值中 address 指定的值,即外部应用程序的监听端口。[/color]
[/list]
[*] [color=#008000][b]OK,现在可以在 eclipse 中设置断点来调试了。首先按照步骤 1 启动项目,然后运行刚刚新建的 Remote Java Application。如果不运行 Remote Java Application,那么只是运行,并不能达到调试的效果。[/b][/color]
[/list]