title: How does Maven plugin prefix resolution work? Why is it resolving "findbugs" but not "jetty"?
body: <p>I was doing some testing using Maven and realized that I can execute the <code>findbugs</code> goal of the Findbugs plugin without adding the plugin to the POM file. On the other hand, when I needed to run the <code>run</code> goal of the Jetty plugin, I was forced to add the plugin to the POM file or the build failed.</p>
  
  <ul>
  <li>Why Jetty needed configuration in the POM while Findbugs didn't?</li>
  <li>How does Maven know which Findbugs to execute (suppose we have to plugins with the same name but different group id)?</li>
  </ul>
  
  <p>When I run the first command the build is successful without any changes in POM file:</p>
  
  <pre class="lang-none prettyprint-override"><code>mvn findbugs:findbugs
  [INFO] Scanning for projects...
  [INFO]                                                                         
  [INFO] ------------------------------------------------------------------------
  [INFO] Building module-mytest 1.0
  [INFO] ------------------------------------------------------------------------
  [INFO] 
  [INFO] --- findbugs-maven-plugin:3.0.4:findbugs (default-cli) @ module-mytest ---
  [INFO] Fork Value is true
       [java] Warnings generated: 6
  [INFO] Done FindBugs Analysis....
  [INFO] ------------------------------------------------------------------------
  [INFO] BUILD SUCCESS
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 24.165s
  [INFO] Finished at: Sun Oct 23 18:40:26 WEST 2016
  [INFO] Final Memory: 21M/111M
  [INFO] -----------------------------------------------------------------------
  </code></pre>
  
  <p>But when I run the second I get this:</p>
  
  <pre class="lang-none prettyprint-override"><code>mvn jetty:run
  [INFO] Scanning for projects...
  Downloading: http://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml
  Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml
  Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml (13 KB at 30.0 KB/sec)
  Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml (20 KB at 41.0 KB/sec)
  [INFO] ------------------------------------------------------------------------
  [INFO] BUILD FAILURE
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 1.129s
  [INFO] Finished at: Sun Oct 23 18:43:27 WEST 2016
  [INFO] Final Memory: 12M/104M
  [INFO] ------------------------------------------------------------------------
  [ERROR] No plugin found for prefix 'jetty' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/home/hp-pc/.m2/repository), central (http://repo.maven.apache.org/maven2)] -&gt; [Help 1]
  [ERROR] 
  [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
  [ERROR] Re-run Maven using the -X switch to enable full debug logging.
  [ERROR] 
  [ERROR] For more information about the errors and possible solutions, please read the following articles:
  [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixException
  </code></pre>
  
  <p>So in order to pass the build I needed to add the following to the pom file:</p>
  
  <pre><code>&lt;plugin&gt;
    &lt;groupId&gt;org.eclipse.jetty&lt;/groupId&gt;
    &lt;artifactId&gt;jetty-maven-plugin&lt;/artifactId&gt;
    &lt;version&gt;9.2.11.v20150529&lt;/version&gt;
  &lt;/plugin&gt;
  </code></pre>