<!DOCTYPE html>
<!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->  
<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->  
<!--[if !IE]><!-->
<html lang="en"> <!--<![endif]-->
  <head>
    <title>M2Eclipse | Execution Not Covered</title>
    <!-- Meta -->
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="M2Eclipse provides tight integration for Apache Maven into the Eclipse IDE." />
    <meta name="author" content="eclipse.org" />
    <meta property="twitter:account_id" content="15710507" />      
    <!-- CSS Global Compulsory-->
    <link rel="stylesheet" href="/m2e/assets/plugins/bootstrap/css/bootstrap.css" />
    <link rel="stylesheet" href="/m2e/assets/css/style.css" />
    <link rel="stylesheet" href="/m2e/assets/css/m2eclipse.css" />
    <link rel="shortcut icon" href="/m2e/assets/img/favicon.ico" />        
    <!-- CSS Implementing Plugins -->
    <link rel="stylesheet" href="/m2e/assets/plugins/font-awesome/css/font-awesome.css" />    
    <!-- GA -->
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
      ga('create', 'UA-56202333-1', 'eclipse.org');
      ga('send', 'pageview');

    </script>
  </head>

  <body>
    <div class="wrap">
      
            <div class="header">
        <div class="navbar navbar-default navbar-fixed-top" role="navigation">
          <div class="navbar-inner">
          <div class="container">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              <a class="navbar-brand" href="/m2e/index.html"> 
                <img id="logo-header" src="/m2e/assets/img/m2e_logo.png" alt="M2Eclipse" width="150" height="61" />
              </a>
            </div>

            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse navbar-responsive-collapse">
              <ul class="nav navbar-nav navbar-left">
              
                  
                  
                  <li class="">
                      <a href="/m2e/m2e-news.html">News</a>
                  </li>
                
                  
                  
                  <li class="">
                      <a href="/m2e/m2e-downloads.html">Download</a>
                  </li>
                
                  
                  
                  <li class="">
                      <a href="/m2e/documentation/m2e-documentation.html">Documentation</a>
                  </li>
                
                  
                  
                  <li class="">
                      <a href="/m2e/m2e-community.html">Community</a>
                  </li>
                
              </ul>
            </div>
          </div>
          </div>
        </div>
      </div><!-- END header -->
      
      <div class="margin-bottom-20"></div>
        <div class="container">
          <div class="margin-bottom-100"></div>

          <div class="row">
  <div class="col-md-3">
    <div class="docNavigation affix">
    <div class="margin-bottom-30"></div>
    <h4 class="headline">Users</h2>
    <ul class="unstyled">
      <li><a href="/m2e/documentation/m2e-faq.html">FAQ</a></li>
      <li><a href="/m2e/documentation/m2e-execution-not-covered.html">Execution Not Covered</a></li>
    </ul>
    <h4 class="headline">Developers</h2>
    <ul class="unstyled">
      <li><a href="/m2e/documentation/m2e-development-environment.html">Developement Environment Setup</a></li>
    </ul>
    <h4 class="headline">Extension Developers</h2>
    <ul class="unstyled">
      <li><a href="/m2e/documentation/m2e-extension-development.html">Getting Started</a></li>
      <li><a href="/m2e/documentation/m2e-making-maven-plugins-compat.html">Making Maven Plugins Compatible</a></li>
    </ul>
    <h4 class="headline">Release Notes</h2>
    <ul class="unstyled">
      <li><a href="/m2e/documentation/release-notes-16.html">M2Eclipse 1.6</a></li>
      <li><a href="/m2e/documentation/release-notes-15.html">M2Eclipse 1.5</a></li>
    </ul>
    </div>
  </div>
  <div class="col-md-9 docs">
  <h3><a href="#background" name="background">Background</a></h3><p>M2Eclipse 0.12 and earlier executed some parts of Maven build lifecycle inside Eclipse and then configured the Eclipse project based on after-execution state collected in MavenProject. This was controlled by many different sets of maven goals &ndash; goals when projects were imported,a project configuration changes and workspace full and incremental builds. Some of these goals were configured at workspace level, some in project/.settings. On top of that, there was project-level setting to &ldquo;skip&rdquo; maven-compiler-plugin execution.</p><p>Unfortunately, this did not work well or not at all for many projects. Probably even worse, it did not <em>always</em> work for many projects, so we had to go through series of refresh/update dependencies/update configuration/rebuild voodoo (or &ldquo;m2eclipse dance&rdquo; as some called it) to get projects in a good state. For example <a href="https://issues.sonatype.org/browse/MNGECLIPSE-823">MNGECLIPSE-823</a> was the most voted issue in M2Eclipse jira and it was a direct manifestation of this &ldquo;flakiness&rdquo;.</p><p>Most, if not all, such problems were traced back to one of two root causes. </p>
<ol>
  <li><p>Out-of-workspace resource changes made by Maven plugin triggered unexpected workspace builds. This was very indeterministic. In some cases projects appeared to work fine. In some cases, generated/filtered resources would go missing. And in some cases workspace build would go on forever.</p></li>
  <li><p>Various JVM and OS resources leaks by Maven plugins was another common cause of problems.</p></li>
</ol><p>To solve these long-standing issues, M2Eclipse 1.0 requires explicit instructions what to do with all Maven plugins bound to &ldquo;interesting&rdquo; phases (see [M2E interesting lifecycle phases](M2E interesting lifecycle phases &ldquo;wikilink&rdquo;)) of a project build lifecycle. We call these instructions &ldquo;project build lifecycle mapping&rdquo; or simply &ldquo;lifecycle mapping&rdquo; because they define how m2e maps information from project <code>pom.xml</code> file to Eclipse workspace project configuration and behaviour during Eclipse workspace build.</p><p>Project build lifecycle mapping can be configured in a project&rsquo;s <code>pom.xml</code>, contributed by Eclipse plugins, or defaulted to the commonly used Maven plugins shipped with m2e. We call these &ldquo;lifecycle mapping metadata sources&rdquo;. m2e will create error marker like below for all plugin executions that do not have lifecycle mapping in any of the mapping metadata sources.</p>
<pre class="prettyprint linenums">
Plugin execution not covered by lifecycle configuration:
org.apache.maven.plugins:maven-antrun-plugin:1.3:run
    (execution: generate-sources-input, phase: generate-sources)
</pre><p>M2Eclipse matches plugin executions to actions using combination of plugin groupId, artifactId, version range and goal. There are three basic actions that M2Eclipse can be instructed to do with a plugin execution &ndash; <strong>ignore</strong>, <strong>execute</strong> and delegate to a project <strong>configurator</strong>.</p><h3>Delegate to a Project Configurator (recommended)</h3><p>A <strong>configurator</strong> mapping tells M2Eclipse to delegate workspace project configuration mapping for matching plugin execution to an implementation of AbstractProjectConfigurator registered with m2e using projectConfigurators extension point.</p><p>In most cases a configurator mapping will be used by M2Eclipse extension developers. See <a href="/documentation/m2e-extension-development.html">M2E Extension Development</a> page for more information about developing M2Eclipse extensions.</p><h3><a href="#ignore-plugin-goal" name="ignore-plugin-goal">Ignore Plugin Goal</a></h3><p>The <strong>ignore</strong> option, as the name suggests, tells M2Eclipse to silently ignore the plugin execution. Here is sample pom.xml snippet:</p>
<pre class="prettyprint linenums">
&lt;pluginManagement&gt;
  &lt;plugins&gt;
    &lt;plugin&gt;
     &lt;groupId&gt;org.eclipse.m2e&lt;/groupId&gt;
     &lt;artifactId&gt;lifecycle-mapping&lt;/artifactId&gt;
     &lt;version&gt;1.0.0&lt;/version&gt;
     &lt;configuration&gt;
       &lt;lifecycleMappingMetadata&gt;
         &lt;pluginExecutions&gt;
           &lt;pluginExecution&gt;
             &lt;pluginExecutionFilter&gt;
               &lt;groupId&gt;some-group-id&lt;/groupId&gt;
               &lt;artifactId&gt;some-artifact-id&lt;/artifactId&gt;
               &lt;versionRange&gt;[1.0.0,)&lt;/versionRange&gt;
               &lt;goals&gt;
                 &lt;goal&gt;some-goal&lt;/goal&gt;
               &lt;/goals&gt;
             &lt;/pluginExecutionFilter&gt;
             &lt;action&gt;
               &lt;ignore/&gt;
             &lt;/action&gt;
           &lt;/pluginExecution&gt;
         &lt;/pluginExecutions&gt;
       &lt;/lifecycleMappingMetadata&gt;
     &lt;/configuration&gt;
    &lt;/plugin&gt;
  &lt;/plugins&gt;
&lt;/pluginManagement&gt;
</pre><p>HINT: M2Eclipse provides a quick-fix associated with &ldquo;plugin execution not covered&rdquo; to easily create <code>&lt;pluginManagement/&gt;</code> elements like above.</p><h3><a href="#execute-plugin-goal" name="execute-plugin-goal">Execute Plugin Goal</a></h3><p>The <strong>execute</strong> option tells m2e to execute the action as part of Eclipse workspace full or incremental build. Beware that M2Eclipse does not provide any safeguards against rogue maven plugins that leak classloaders, modify random files inside workspace or throw nasty exceptions to fail the build. Use this as the last resort and make sure you know what you are doing.</p>
<pre class="prettyprint linenums">
&lt;pluginManagement&gt;
  &lt;plugins&gt;
    &lt;plugin&gt;
     &lt;groupId&gt;org.eclipse.m2e&lt;/groupId&gt;
     &lt;artifactId&gt;lifecycle-mapping&lt;/artifactId&gt;
     &lt;version&gt;1.0.0&lt;/version&gt;
     &lt;configuration&gt;
       &lt;lifecycleMappingMetadata&gt;
         &lt;pluginExecutions&gt;
           &lt;pluginExecution&gt;
             &lt;pluginExecutionFilter&gt;
               &lt;groupId&gt;some-group-id&lt;/groupId&gt;
               &lt;artifactId&gt;some-artifact-id&lt;/artifactId&gt;
               &lt;versionRange&gt;[1.0.0,)&lt;/versionRange&gt;
               &lt;goals&gt;
                 &lt;goal&gt;some-goal&lt;/goal&gt;
               &lt;/goals&gt;
             &lt;/pluginExecutionFilter&gt;
             &lt;action&gt;
               &lt;execute&gt;
                 &lt;runOnIncremental&gt;false&lt;/runOnIncremental&gt;
               &lt;/execute &gt;
             &lt;/action&gt;
           &lt;/pluginExecution&gt;
         &lt;/pluginExecutions&gt;
       &lt;/lifecycleMappingMetadata&gt;
     &lt;/configuration&gt;
    &lt;/plugin&gt;
  &lt;/plugins&gt;
&lt;/pluginManagement&gt;
</pre><p>HINT: Use quick fix to create &ldquo;ignore&rdquo; mapping, then replace <code>&lt;ignore/&gt;</code> action with <code>&lt;execute/&gt;</code>. M2Eclipse 1.3 and newer assume safer runOnIncremental=false by default. It is recommended to always specific desired runOnIncremental value explicitly in lifecycle mapping configuration.</p><h3><a href="#metadata-source-lookup-order" name="metadata-source-lookup-order">Metadata Source Lookup Order</a></h3><p>M2Eclipse considers lifecycle mapping metadata sources in the following order:</p>
<ol>
  <li><p>The project&rsquo;s <code>pom.xml</code></p></li>
  <li><p>The parent <code>pom.xml</code>, the grand-parent <code>pom.xml</code> and so on.</p></li>
  <li><p>M2Eclipse 1.2+ workspace preferences (see below)</p></li>
  <li><p>Installed M2Eclipse extensions (in no particular order)</p></li>
  <li><p>M2Eclipse 1.1+ lifecycle mapping metadata provided by maven plugin (see below)</p></li>
  <li><p>Default lifecycle mapping metadata shipped with M2Eclipse</p></li>
</ol><p>M2Eclipse uses the first applicable mapping found.</p><h3><a href="#lifecycle-mapping-metadata-provided-by-maven-plugin" name="lifecycle-mapping-metadata-provided-by-maven-plugin">Lifecycle mapping metadata provided by maven plugin</a></h3><p>Starting with m2e 1.1, maven plugin developers are able to provide lifecycle mapping metadata as part of the plugin itself. If present, such mapping metadata will be automatically used by m2e, thus eliminating the need for plugin specific project configurator and/or lifecycle mapping metadata in pom.xml.</p><p>[M2E compatible maven plugins](M2E compatible maven plugins &ldquo;wikilink&rdquo;) wiki page provides more information about developing m2e-compatible maven plugins that do not require external build lifecycle mapping configuration.</p><h3><a href="#eclipse-workspace-lifecycle-mapping-metadata" name="eclipse-workspace-lifecycle-mapping-metadata">Eclipse workspace lifecycle mapping metadata</a></h3><p>Starting with M2Eclipse 1.2, it is now possible to configure lifecycle mapping metadata in m2e workspace preferences. Plugin goals can be ignored at workspace level using new quick-fix, which is available both from <code>pom.xml</code> editor and from Problems view. It is also possible to edit lifecycle mapping xml file directly. The file can be opened from Preferences-&gt;Maven-&gt;LifecycleMappings.</p><h2><a href="#viewing-effective-lifecycle-mapping" name="viewing-effective-lifecycle-mapping">Viewing Effective Lifecycle Mapping</a></h2><p>Starting with M2Eclipse 1.1, it is now possible to see effective lifecycle mapping in Maven-&gt;LifecycleMapping project properties.</p><p><img src="/assets/img/m2e-project-properties-lifecyclemapping.png" alt="Lifecycle""/></p><h2><a href="#help-improve-m2eclipse-maven-plugin-coverage" name="help-improve-m2eclipse-maven-plugin-coverage">Help Improve M2Eclipse Maven Plugin Coverage</a></h2><p>First and foremost, you need to understand the desired behaviour. In most cases this should be limited to IDE usecase, i.e. editing sources and running tests, and not the complete Maven build, so plugin goals that publish build results to a remote repository can be ignored without any adverse side effects, while java source code generation most likely is necessary.</p><p>If the desired behaviour is applicable to other Maven projects using the plugin goal, we strongly recommend documenting your findings in m2e <a href="https://bugs.eclipse.org/bugs/">bugzilla</a>. Please use &ldquo;[mojo] plugin-artifact-id:goal support&rdquo; bugzilla summary and make sure to <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=specific&order=relevance+desc&bug_status=__open__&product=m2e&content=mojo">search for existing records</a>. When submitting new request, please provide standalone example project and detailed description of desired behaviour when the project is imported in Eclipse workspace. This will allow other users and interested developers to track popularity of various Maven plugins and schedule implementation work accordingly.</p><p><a href="/documentation/m2e-extension-development.html">M2E Extension Development</a> has pointers how to develop M2Eclipse extensions.</p><h2><a href="#common-problems" name="common-problems">Common Problems</a></h2><p>Some Maven plugins are recognized as problematic and will produce error markers with a text similar to: <em>maven-dependency-plugin (goals &ldquo;copy-dependencies&rdquo;,&ldquo;unpack&rdquo;) is not supported by M2Eclipse</em></p><p>In version 1.0 there is no quick fix available for this but it is possible to define a lifecycle mapping for the plugin as well (as shown in <em>ignore plugin goal</em> above). Which removes the error marker.</p><h2>Eclipse 4.2 Adds Default Mapping</h2><p>If you are using Eclipse 4.2 and have troubles with mapping and won&rsquo;t put mess into yours pom.xml create new file lifecycle-mapping-metadata.xml configure it in <strong>Windows -&gt; Preferences -&gt; Maven -&gt; Lifecycle mapping</strong> . (don&rsquo;t forget press <em>Reload workspace lifecycle mappings metadata</em> after each change of this file!).</p><p>If you have multiple Eclipse workspaces and/or work in a team, it is easy to get workspace-level configuration out-of-sync. This is unlikely to cause any confusion for &lt;ignore /&gt; mappings, but for &lt;execute /&gt; and &lt;configurator /&gt; mappings configuration in pom.xml or maven-plugin is strongly recommended.</p><p>Here is example based on eclipse/plugins/org.eclipse.m2e.lifecyclemapping.defaults_1.2.0.20120903-1050.jar/lifecycle-mapping-metadata.xml</p>
<pre class="prettyprint linenums">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;lifecycleMappingMetadata&gt;
  &lt;pluginExecutions&gt;
    &lt;pluginExecution&gt;
      &lt;pluginExecutionFilter&gt;
        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
        &lt;artifactId&gt;buildnumber-maven-plugin&lt;/artifactId&gt;
        &lt;goals&gt;
          &lt;goal&gt;create-timestamp&lt;/goal&gt;
        &lt;/goals&gt;
        &lt;versionRange&gt;[0.0,)&lt;/versionRange&gt;
      &lt;/pluginExecutionFilter&gt;
      &lt;action&gt;
        &lt;ignore /&gt;
      &lt;/action&gt;
    &lt;/pluginExecution&gt;

    &lt;pluginExecution&gt;
      &lt;pluginExecutionFilter&gt;
        &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
        &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;
        &lt;goals&gt;
          &lt;goal&gt;list&lt;/goal&gt;
        &lt;/goals&gt;
        &lt;versionRange&gt;[0.0,)&lt;/versionRange&gt;
      &lt;/pluginExecutionFilter&gt;
      &lt;action&gt;
        &lt;ignore /&gt;
      &lt;/action&gt;
    &lt;/pluginExecution&gt;

    &lt;pluginExecution&gt;
      &lt;pluginExecutionFilter&gt;
        &lt;groupId&gt;org.zeroturnaround&lt;/groupId&gt;
        &lt;artifactId&gt;jrebel-maven-plugin&lt;/artifactId&gt;
        &lt;goals&gt;
          &lt;goal&gt;generate&lt;/goal&gt;
        &lt;/goals&gt;
        &lt;versionRange&gt;[0.0,)&lt;/versionRange&gt;
      &lt;/pluginExecutionFilter&gt;
      &lt;action&gt;
        &lt;ignore /&gt;
      &lt;/action&gt;
    &lt;/pluginExecution&gt;

    &lt;pluginExecution&gt;
      &lt;pluginExecutionFilter&gt;
        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
        &lt;artifactId&gt;gwt-maven-plugin&lt;/artifactId&gt;
        &lt;goals&gt;
          &lt;goal&gt;compile&lt;/goal&gt;
        &lt;/goals&gt;
        &lt;versionRange&gt;[0.0,)&lt;/versionRange&gt;
      &lt;/pluginExecutionFilter&gt;
      &lt;action&gt;
        &lt;ignore /&gt;
      &lt;/action&gt;
    &lt;/pluginExecution&gt;

    &lt;pluginExecution&gt;
      &lt;pluginExecutionFilter&gt;
        &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
        &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;
        &lt;goals&gt;
          &lt;goal&gt;copy-dependencies&lt;/goal&gt;
          &lt;goal&gt;unpack&lt;/goal&gt;
        &lt;/goals&gt;
        &lt;versionRange&gt;[0.0,)&lt;/versionRange&gt;
      &lt;/pluginExecutionFilter&gt;
      &lt;action&gt;
        &lt;ignore /&gt;
      &lt;/action&gt;
    &lt;/pluginExecution&gt;

  &lt;/pluginExecutions&gt;
&lt;/lifecycleMappingMetadata&gt;
</pre>
  </div>
</div>
            
        </div>
    </div><!-- END wrap -->
    
        <div class="stickyFooter">
      <div class="footer">
        <div class="container">
          <div class="row">
            <div class="col-md-4 md-margin-bottom-40"></div><!--/col-md-4-->
            <div class="col-md-4 md-margin-bottom-40">            </div>
            <div class="col-md-4">              
            </div>
          </div>
        </div>
      </div>
      <div class="copyright">
        <div class="container">
          <div class="row">
            <div class="col-md-6">
              <p class="copyright-space">
                <a href="https://www.eclipse.org/">Home</a> | <a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a> | <a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a> | <a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a> | <a href="https://www.eclipse.org/legal/">Legal</a> | <a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a>
              </p>
            </div>
            <div class="col-md-6" align="right">
              <p class="copyright-space">
                Copyright &copy;
                2015 The Eclipse Foundation. All Rights Reserved.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>



    <!-- JS Global Compulsory -->
    <script type="text/javascript" src="/m2e/assets/plugins/jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/jquery-migrate-1.2.1.min.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/hover-dropdown.min.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/back-to-top.js"></script>
    <!-- TESTING JS -->
    <script type="text/javascript" src="/m2e/assets/plugins/app.js"></script>
    <script type="text/javascript">
        jQuery(document).ready(function() {
            App.init();
        });
    </script>
    <!--[if lt IE 9]>
        <script src="/m2e/assets/plugins/respond.js"></script>
    <![endif]-->
  </body>
</html>	