IntelliJ likes to maintain two build systems. It has its own project files that keep track of dependencies and how to build things. Changes made to the POM have to be imported into IntelliJ&#x27;s project format, if you build or run something in IntelliJ, it&#x27;s not necessarily the same build Maven would perform, because IntelliJ is invoking java and javac itself without going through mvn.<p>NetBeans, on the other hand, uses the POM itself as its project file for everything it can. All dependency information exists <i>only</i> in the POM, and NetBeans reads it directly. What little bit NetBeans needs that doesn&#x27;t go in the POM goes in nbactions.xml (e.g. main class, path to JVM), which is very small and minimal, and there&#x27;s no duplication of data between the two. The NetBeans project file is just the tuple of (pom.xml, nbactions.xml). I&#x27;ve encountered many instances where IntelliJ and Maven get their dependency trees desynced, and while sometimes it can be solved by re-importing the POM, other times it can&#x27;t, and resolving it becomes this huge hairy nightmare.<p>Better yet, whenever you initiate a build or run anything in NetBeans using a Maven project, it simply invokes mvn through a shell. You can see in the output tab the exact Maven command line NetBeans ran, so you can duplicate it or send it as instructions to collaborators who don&#x27;t necessarily use NetBeans.<p>I have to use IntelliJ at my current job, and I find myself just using it as an editor and building by manually invoking Maven on the command line myself (and the company has our own system of scripts for running our Java projects).