我以为我会为OSX和Linux人员扩展这些答案(不是他们需要它):
我也喜欢使用mvnDebug。但是,在OSX特立独行者破坏了我的Java开发环境之后,我从头开始,研究这篇文章,并认为我会补充。
$ mvnDebug vertx:runMod
-bash: mvnDebug: command not found
DOH!安装Maverick时,在新的SSD驱动器和/或所有Java重置之后,我还没有在此框中设置它。
我使用OSX和Linux的软件包管理器,所以我不知道mvn的真正用途。(我知道很短的时间..谢谢brew ..我喜欢我不知道。)
让我们来看看:
$ which mvn
/usr/local/bin/mvn
那里...你...小b @ stard。
现在,您在哪里安装到:
$ ls -l /usr/local/bin/mvn
lrwxr-xr-x 1 root wheel 39 Oct 31 13:00 /
/usr/local/bin/mvn -> /usr/local/Cellar/maven30/3.0.5/bin/mvn
啊哈!因此,您已安装在/usr/local/Cellar/maven30/3.0.5/bin/mvn中。您厚脸皮的小构建工具。毫无疑问是自制的...
你有你的小伙伴mvnDebug吗?
$ ls /usr/local/Cellar/maven30/3.0.5/bin/mvnDebug
/usr/local/Cellar/maven30/3.0.5/bin/mvnDebug
好。好。很好。一切按计划进行。
现在把那个小b @ stard移到我更容易记住他的地方。
$ ln -s /usr/local/Cellar/maven30/3.0.5/bin/mvnDebug /usr/local/bin/mvnDebug
ln: /usr/local/bin/mvnDebug: Permission denied
该死的,你的电脑...你会服从我的意志。你知道我是谁吗?我是SUDO!弓!
$ sudo ln -s /usr/local/Cellar/maven30/3.0.5/bin/mvnDebug /usr/local/bin/mvnDebug
现在我可以在Eclipse中使用它了(但是当我有IntelliJ !!!时为什么要这么做呢!)
$ mvnDebug vertx:runMod
Preparing to Execute Maven in Debug Mode
Listening for transport dt_socket at address: 8000
在内部,mvnDebug使用以下命令:
MAVEN_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE \
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
因此,您可以对其进行修改(我通常在9090端口上进行调试)。
该博客介绍了如何设置Eclipse远程调试(关闭)
http://javarevisited.blogspot.com/2011/02/how-to-setup-remote-debugging-in.html
同上Netbeans
https://blogs.oracle.com/atishay/entry/use_netbeans_to_debug_a
同上IntelliJ
http://www.jetbrains.com/idea/webhelp/run-debug-configuration-remote.html
通常,这是有关-Xdebug命令的一些不错的文档。
http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
“ -Xdebug启用了Java虚拟机工具接口(JVMTI)所使用的JVM中的调试功能。JVMTI是调试器和性能分析工具使用的低级调试接口。借助它,您可以检查状态并控制执行在JVM中运行的应用程序。”
“探查器最常使用的JVMTI子集始终可用。但是,调试器用来逐步执行代码和设置断点的功能会带来一些开销,因此并不总是可用。要启用此功能您必须使用-Xdebug选项。”
-Xrunjdwp:transport=dt_socket,server=y,suspend=n myApp
还要查看-Xrunjdwp上的文档。例如,只有在抛出特定异常时,才可以启用它。您可以将其暂停或运行。反正我离题。
ln -s /usr/share/maven/bin/mvnDebug /usr/bin/mvnDebug