我的问题是我无法使用tomcat7-maven-plugin运行远程调试.我用的是什么:
Maven的
Tomcat7插件到maven
IntelliJ IDEA Ultimate 2016.2.2
Truec默认提供Ofc Maven.我已经尝试过使用mvnDebug tomcat7:run命令,但是intelliJ没有在maven的内置命令行中解析mvnDebug短语.不能使用cmd命令行,因为我无法找到'home'路径,因为maven是内置的intelliJ.尝试使用intelli配置远程调试,但感到困惑.在"Maven Projects"窗口中也找不到tomcat7插件.但我确定它是,因为tomcat7:run命令启动tomcat容器和应用程序工作.
在Intellij IDEA中,在Maven Projects
选项卡中,向下挖掘tomcat7:run
目标,然后右键单击并选择Debug
如下:
在abouve,请注意第34行的断点HelloServlet.java
.现在,只要您点击映射到servlet的URL(在本例中为http:// localhost:9090/hello),断点就会被点击,如下所示:
用于测试此代码的代码位于以下存储库:https://github.com/javacreed/how-to-run-embedded-tomcat-with-maven
对于不能够看到Plugins
的Maven Projects
(对不起,我错过了你提到这一点),请注意,Plugins
是不是在"Maven项目"的顶级节点..但将是一个名为取自节点下
项目的根POM的.基于我自己对Intellij 2016.x的经验以及这个功能非常基本的事实,如果这是Intellij中的一个错误,我会感到非常惊讶.我建议这是你的pom.xml问题或(颤抖!)用户错误.
Plugins
不可见Maven Projects
从pom.xml(这里)开始,tomcat7插件位于该build -> pluginManagement -> plugins
部分中.本节旨在用于根pom(如你所示)集中插件配置,然后只需提及插件即可由任何子模块继承.但是如果不这样做,tomcat7插件将无法在任何地方使用.因此,你必须在build -> plugins -> plugin
某处有一个带有tomcat7 maven插件的部分(另请参阅相关问题:Maven:什么是pluginManagement?)
例如,以下更改(这是您的仓库的相应拉取请求):
org.apache.tomcat.maven tomcat7-maven-plugin
添加到
根pom的部分,立即导致插件部分以及tomcat7目标出现在Maven Projects
:
您可以使用此命令运行带有maven的tomcat:
mvn tomcat7:run
如果要调试,请设置此maven选项:
export MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
如果您在Windows中,请使用set命令:
set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
然后你可以使用Eclipse或Intellij进行调试.
希望这有帮助.