How to run tomcat7-maven-plugin in debug mode with IntelliJ IDEA
In Intellij IDEA, in the Maven Projects
tab, dig down to the tomcat7:run
goal and then right click and select Debug
like so:
In the abouve, notice that there is a breakpoint on Line 34 of HelloServlet.java
. Now as soon as you hit the URL mapped to the servlet (http://localhost:9090/hello in this case), the breakpoint gets hit as seen below:
The code used to test this is at the following repository: https://github.com/javacreed/how-to-run-embedded-tomcat-with-maven
Regarding not being able to see Plugins
in Maven Projects
(sorry I missed that you've mentioned this), note that Plugins
is not a top level node in 'Maven Projects' .. but will be under a node named taken from <name>
of your project's root pom. Based on my own experience with Intellij 2016.x as well as on the fact that this functionality is pretty basic, I'd be quite surprised if this is a bug in Intellij. I'd suggest that this is either a problem with your pom.xml or a (shudder!) user error.
Update - Plugins
not visible in Maven Projects
From the pom.xml (here), the tomcat7 plugin is in the build -> pluginManagement -> plugins
section. This section is intended to be used in a root pom (as you have) to centralize the plugin configuration which can then be inherited by any of the child modules by simply mentioning the plugin. But without doing so, the tomcat7 plugin will not be available anywhere. Therefore, you must have a build -> plugins -> plugin
section with the tomcat7 maven plugin somewhere (Also see relevant question : Maven: What is pluginManagement?)
For example the following change (here is the corresponding pull request for your repo):
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
</plugin>
</plugins>
Added to <build>
section of your root pom, immediately results in the Plugins section, along with the tomcat7 goals, to appear in Maven Projects
:
you can run tomcat with maven with this command:
mvn tomcat7:run
and if you want to debug, set this maven options:
export MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
if you are in windows, use the set command:
set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
then you can debug with Eclipse or Intellij.
Hope this help.