Failed import of Maven project into IntelliJ
Something went wrong with the import of the Maven project into IntelliJ.
Try again.
- Delete
.ideaandmyapp.imlitems from project folder. - Re-import Maven project into IntelliJ.
- Build project.
Perhaps context-click in the code editor and chooseRecompile MyApp.java - Debug.
Click the green-bug to debug, or context-click to chooseDebug 'MyApp.main()'
Then debugger works as expected, stopping on breakpoints.
Tip: Before importing a Maven project, edit the POM to specify a Java version as the compiler source & target. If omitted you get Maven's default of compiling as Java 5 (1.5) code. Per the Maven page, Setting the -source and -target of the Java Compiler
inject these four lines into your POM file, a pair of tags inside a properties tag.
Here we specify Java 8 (1.8) be used by the compiler.
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
Answer from Basil Bourque on Stack OverflowUsing IntelliJ Community Edition 2022.3.2 for Windows, I was debugging just fine until I decided to run some unit tests manually by going to the file in the proyect explorer, double clicking it and selecting "run". As a result, the debugger (Remote JVM Debug) no longer stops at breakpoints.
My best guess is that running the unit test created another JVM or Java Project and the debugger attachs to it whenever I run it but I tried restarting my PC to kill all processes and did´t work. Also tried uninstalling Tomcat and IntelliJ because I notice that before running the unit test, it built the proyect and that´s something I never do using the IntelliJ Build Project tool, I always do it via CMD
I created a post in StackOverflow but got no answer. Pelase feel free to check the post asi i added a lot more information there.
Any kind of information or workaround I can try is welcome, i have been struggling with this issue for 2 days now.
Hello everyone, intellij noob here...
my eclipsed kept freezing so i had to transition to intellij community edition mid project to finish a time sensitive project for my client. so i imported my javafx project as "maven project" into intellij and everything was fine and i was cheering, until i encountered an exception and wanted to setup breakpoints to evaluate... the execution never stops...
i've been battling with this whole morning with grok which provided a bunch of all kinds of suggestions, none worked so far. of course grok keeps telling to ensure breakpoints are not muted, don't have conditions, are set in reachable lines, pom.xml is correct, code is up-to-date etc etc, of course they are... these are so "basic", the problem must be some intellij-specific config i'm missing but i don't know what or where...
so first i tried:
these are supposed to be imported from my eclipse so i figured this was fine. but no, debugger never worked. then i added a "remote jvm debug":
i have to point out that in intellij my "run" button works no problem, and it also works fine in eclipse (...argh) even in debug mode, so it's not a pom, proj config or code problem i'm 99.99% sure.
in the project structure window, in "project" i have the correct project and sdk, in "modules" i have all the needed javafx dependencies, and in "library" or "paths" tab, it correctly targets the \target\classes path, and all relevant folders are listed there, so it's not a path issue either... and according to grok i don't need to edit "attach to process" since everything should be automatic.
i really don't understand why it's seem so impossible for intellinj to halt execution on breakpoints in debug mode while eclipse can... since intellij seems successfully imported my maven project from eclipse, these things should be a non-issue... anyway, i've wasted hours and haven't eaten anything, i'm out of ideas, and if you guys can't help me either, i think i'll give up on intellij and go back to eclipse... what a dream come false...
Confirm. Problem was that I try to debug using maven run configuration. Switching to Application configuration type helps. I've spend half of a day on it (
Well... for some reason, creating a Gradle run/debug config would make it connect to the wrong port (something random over 50000) while the application was running on 8080.
Anyway, long story short, creating an Application run/debug config solved the issue and everything works fine now.
I figured out what my issue was and I think the problem is specific to me and the nature of my application. Actually I should call it a self induced issue. Let me explain the nature of events.
I have been using eclipse to develop and have a local install of weblogic instance. My application needs coherence cache server and I have few other JVM parameters that I pass when starting the domain. Therefore I had added a line at the start of the
$DOMAIN_HOME/bin/setDomainEnv.shfile like soJAVA_OPTIONS="- Dtangosol.coherence.distributed.localstorage=false -Dtangosol.coherence.wka=devmachine and blah blah blahI switched to intellij and started working on this project and then configured the weblogic plugin and run configuration etc.
- I noticed that intellij adds a JAVA_OPTIONS in the startup/connection tab in Run/Debug Configurations like so

- However the JAVA_OPTIONS that was being passed by intellij was not being used by weblogic. I believe it was overridden with what was in the setDomainEnv.sh which is why I saw the following logs.
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
Starting WLS with line:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -client -Xms512m -Xmx512m -XX:MaxPermSize=256m -Dweblogic.Name=AdminServer -Djava.security.policy=/Users/dparupud/omw/oracle/middleware/weblogic_10.3.6/wlserver_10.3/server/lib/weblogic.policy -Dtangosol.coherence.distributed.localstorage=false -Dtangosol.coherence.wka=devmachine blah blah blah......
- When I went and removed the JAVA_OPTIONS from setDomainEnv.sh and restarted the server from intellij I saw the following log
starting weblogic with Java version:
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
Starting WLS with line:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -client -Xms512m -Xmx512m -XX:MaxPermSize=256m -Dweblogic.Name=AdminServer -Djava.security.policy=/Users/dparupud/omw/oracle/middleware/weblogic_10.3.6/wlserver_10.3/server/lib/weblogic.policy - agentlib:jdwp=transport=dt_socket,address=127.0.0.1:65501,suspend=y,server=n
Now the log showed that the jdwp agent was in action. I did notice that I did not see that particular log before I asked the Question on SO but I thought maybe IntelliJ was doing something inside the covers because JAVA_OPTIONS was being passed and intellij does not allow you to mess with that ( it is readonly).
I guess I can either pass all my jvm parameters either from intellij or add the jdwp agent info in the setDomainEnv.sh.
Now I am able to debug.
To setup WebLogic debugging on IntelliJ:
Find the WebLogic Debug Port: this is the port on WebLogic exposed for debugging. The default debug port is 8453 but if it was changed you can find it in the config.xml (under the config folder in your domain home) or the setDomainEnv.sh look for DEBUG_PORT (I assume it is .sh and not .bat as you appear to be using Mac OS X).
Remote Debugger Configuration: go to the configuration and choose new, then select "Remote" ,type in any name that is sensible and under the port (orange block in image) type in the value you found in 1. For host (the green block) type localhost [a side note: you can connect to a remote server by typing that servers host name or IP if the debug port is exposed].
- Start debugger: Start the debug configuration you just setup, the debug window will pop up and if the port is correct it will say it has connected to remote host and you are good to go debugging.

--Edit 1--
Read your question again missed the part about you already having setup the remote config.
It may be missing the breakpoint if your program is multi-threaded the breakpoint may not be hit on the current thread you are on.
There is a drop down in the debugger when you have the remote configuration working where you should be able to select the thread to debug on.
-- Edit 2 --
Added the image for the remote debugger settings
Update 2021:
Nowadays, on most situations, debugging should work out of the box.
Newer versions of IntelliJ IDEA (tested with 2020.3) can now auto-detect maven exec configurations and add the proper options to enable debugging. See IDEA-189973 for further info. Thanks @Gili for opening a ticket for this functionality back in 2018.
Nevertheless my original answer bellow can still be useful for older versions of IntelliJ, Remote Debugging or to debug while using certain Maven / Gradle plugins that Fork the VM and require debugging options to be manually passed downstream (adjust configuration accordingly).
My solution:
Considering that you have a program that depends on system properties:
package com.mycompany.app;
public class App {
private static final String GREETING = System.getProperty("greeting", "Hi");
public static void main(String[] args) {
int x = 10;
System.out.println(GREETING);
}
}
And you are running it with exec:exec:
mvn exec:exec -Dexec.executable=java "-Dexec.args=-classpath %classpath -Dgreeting=\"Hello\" com.mycompany.app.App"
With some "inception magic" we can debug the process started by Mavenexec:exec.
Maven
Change your exec:exec goal to enable remote debugging. I'm using suspend=y and server=n, but feel free to configure the JDWP Agent as you please:
-agentlib:jdwp=transport=dt_socket,server=n,address=127.0.0.1:8000,suspend=y`
This will not be passed directly to the maven JVM, instead it will be passed to exec.args which will be used by exec:exec:
mvn exec:exec -Dexec.executable=java "-Dexec.args=-classpath %classpath -agentlib:jdwp=transport=dt_socket,server=n,address=127.0.0.1:8000,suspend=y -Dgreeting=\"Hello\" com.mycompany.app.App"
IntelliJ IDEA
Create a Remote configuration (again I'm using a Listen strategy. You should adjust it accordingly):

Now toggle your breakpoints and Debug your remote configuration. Using the settings above it will wait until your process starts:

Finally run the exec:exec line above and debug your application at will:

So basically you need two "Run/Debug" configurations for this to work:
- A Maven configuration for
exec:execwith the system properties and JDWP agent configuration:

- The remote configuration acting as a client.
The exec goal will execute your program in a separate process, so the debugger may not be connecting to the right JVM. Instead try using the java goal, e.g.:
mvnDebug install exec:java
This will execute your program in the same process and hopefully you will hit your breakpoint.
Did some searching through IntelliJ Help PDF:
Help Doc pg. 431
Their documentation Describes the checkmark as "Shown at run-time when the breakpoint is recognized by the debugger as set on an executable code line."
and the regular red dot as "Shown at design-time or during the debugging session when the class with such breakpoint is not yet loaded. "
So it would seem that the line you're adding the breaking point to never gets executed. You can try stepping up line by line through the class to make sure the class is not getting hung up somewhere.
I made a n00b mistake on the IDE. Instead of hitting the debug button, I thought it would work the same as visual studio or eclipse in that I'd have to use the run button, yet when I hit the debug button (That looks like an actual bug) my break-point hit just fine.