本文得到了国内Nexus大拿许晓斌老师的支持,首先在此感谢许老师的帮助。
在上一篇文章编译了Nexus源代码以后,这篇文章说明如何使用Eclipse在Nexus源代码中打断点并使用Eclipse捕捉。
该操作包括以下几步:
1. 正确安装部署Nexus并修改Nexus目录下的\bin\jsw\conf文件夹下的wrapper.conf文件
找到以下几行,全部取消注释。这里的8000表示的是Eclipse远程调试监听的端口。默认是8000。
#wrapper.java.additional.1=-Xdebug
#wrapper.java.additional.2=-Xnoagent
#wrapper.java.additional.3=-Djava.compiler=NONE
#wrapper.java.additional.4=-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
#wrapper.java.additional.5=-XX:+HeapDumpOnOutOfMemoryError
2. 启动Nexus,这时Nexus会停在启动界面,如下图所示:
3. 启动Eclipse,并配置远程调试的监听,如下图所示:
4. 点击Debug即可。注意,这时Eclipse的debug界面可以看到线程不断增多,而cmd的控制台打印启动信息,稍等片刻即启动成功。如下几幅图所示:
线程会逐渐增多
命令行打印启动信息
启动完成!!
5. 试验一下,给MavenCoordinatesSearcher类的public boolean canHandle( final Map<String, String> terms )打个断点,然后页面使用GAV搜索junit,进断点了!!