<!DOCTYPE html>

<html class="no-js" lang="en" dir="ltr">
<head>
  <meta charset="utf-8">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <title>Apache NetBeans Maven Utilities - NBM Maven Plugin &#x2013; Plugin Documentation</title>
  <link rel="stylesheet" href="./css/netbeans.css" />
  <link href="https://fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet">   
</head>
<body>
<div class="top-bar" id="responsive-menu">
    <div class='top-bar-left'>
        <a class='title' href="http://netbeans.apache.org"><img src='/images/apache-netbeans.svg' style='padding: 8px; height: 48px;'>Apache NetBeans (incubating)</a>
    </div>
    <div class="top-bar-right">
        <ul class="vertical medium-horizontal menu" style="right: 90px;" data-responsive-menu="drilldown medium-dropdown">
            <li> <a href="../nb-repository/index.html">NB Repository Plugin</a> </li>
            <li> <strong style='line-height: 1;margin-bottom: 0;padding: 0.7rem 1rem;display: block;' >NBM Plugin</strong> </li>
            <li> <a href="../shared/index.html">Shared</a> </li>
            <li> <a href="../parent/index.html">Parent</a> </li>
        </ul>
    </div>
</div>
<div class='grid-container main-content'>
            <div id="toc" class="toc">
<div id="toctitle">Overview</div>
<ul class="sectlevel1">
<li><a href="index.html">Usage</a></li>
<li><a href="plugin-info.html">Plugin Goals</a></li>
</ul>
<div id="toctitle">HOWTOs</div>
<ul class="sectlevel1">
<li><a href="buildinstexample.html">Customize installers</a></li>
<li><a href="upgrade.html">Upgrade from older versions</a></li>
</ul>
<div id="toctitle">Deprecated</div>
<ul class="sectlevel1">
<li><a href="nbm.html">Descriptor Format</a></li>
<li><a href="descriptor.html">Example Descriptor</a></li>
</ul>
</div>
<div id="preamble">
<div class="sectionbody">
<div class="section">
<h2><a name="Plugin_Documentation"></a>Plugin Documentation</h2><a name="Plugin_Documentation"></a>
<p>Goals available for this plugin:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>Goal</th>
<th>Description</th></tr>
<tr class="b">
<td><a href="autoupdate-mojo.html">nbm:autoupdate</a></td>
<td>Create the NetBeans auto update site definition.</td></tr>
<tr class="a">
<td><a href="branding-mojo.html">nbm:branding</a></td>
<td>Package branding resources for NetBeans platform/IDE based
application. The format of branding resources is the same as in
NetBeans Ant-based projects. The <code>src/main/nbm-branding</code>
folder of the project is assumed to contain the branding content.
Within the directory, the following folder structure is assumed: 
<ul>
<li>1. pick the IDE/platform module which contents you want to
brand. eg. org-openide-windows.jar</li>
<li>2. locate the jar within the IDE/platform installation and it's
cluster, eg. modules/org-openide-windows.jar</li>
<li>3. create the same folder structure in src/main/nbm-branding,
make folder with the module's jar name as well. eg. create folder
by name modules/org-openide-windows.jar</li>
<li>4. within that folder place your branding modifications at the
same location, as if they were withn the jar, eg.
org/openide/windows/ui/Bundle.properties and place the changed
bundle keys there.</li>
</ul></td></tr>
<tr class="b">
<td><a href="build-installers-mojo.html">nbm:build-installers</a></td>
<td>Build installers for Mavenized NetBeans application. Creates
installers for supported operating systems and packages each
installer as a deployable artifact. 
<p>See a <a
href="http://www.mojohaus.org/nbm-maven-plugin/buildinstexample.html">how-to</a>
on customizing the installer.</p></td></tr>
<tr class="a">
<td><a href="cluster-mojo.html">nbm:cluster</a></td>
<td>Create the NetBeans module clusters from reactor. Semi-deprecated;
used only for standalone modules and "suites".</td></tr>
<tr class="b">
<td><a href="cluster-app-mojo.html">nbm:cluster-app</a></td>
<td>Create the NetBeans module clusters/application for the
'nbm-application' packaging projects</td></tr>
<tr class="a">
<td><a href="help-mojo.html">nbm:help</a></td>
<td>Display help information on nbm-maven-plugin.<br />
Call <code>mvn nbm:help -Ddetail=true
-Dgoal=&lt;goal-name&gt;</code> to display parameter details.</td></tr>
<tr class="b">
<td><a href="manifest-mojo.html">nbm:manifest</a></td>
<td>Goal for generating NetBeans module system specific manifest
entries, part of <code>nbm</code> lifecycle/packaging. In order to
have the generated manifest picked up by the maven-jar-plugin, one
shall add the following configuration snippet to maven-jar-plugin. 
<pre>
 <code>
&lt;plugin&gt;
&lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
&lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;
&lt;version&gt;3.0.2&lt;/version&gt;
&lt;configuration&gt;
&lt;archive&gt;
&lt;manifestFile&gt;${project.build.outputDirectory</code>/META-INF/MANIFEST.MF&lt;/manifestfile&gt;
&lt;/archive&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
}
</pre></td></tr>
<tr class="a">
<td><a href="nbm-mojo.html">nbm:nbm</a></td>
<td>Create the NetBeans module artifact (nbm file), part of "nbm"
lifecycle/packaging.</td></tr>
<tr class="b">
<td><a href="run-ide-mojo.html">nbm:run-ide</a></td>
<td>Run NetBeans IDE with additional custom module clusters, to be used
in conjunction with nbm:cluster. Semi-deprecated; used only for
standalone modules and "suites".</td></tr>
<tr class="a">
<td><a href="run-platform-mojo.html">nbm:run-platform</a></td>
<td>Run a branded application on top of NetBeans Platform. To be used
with projects with nbm-application packaging only and the project
needs to be built first.</td></tr>
<tr class="b">
<td><a href="standalone-zip-mojo.html">nbm:standalone-zip</a></td>
<td>Create a standalone application out of the composed clusters of
nbm-application</td></tr>
<tr class="a">
<td><a href="webstart-app-mojo.html">nbm:webstart-app</a></td>
<td>Create webstartable binaries for a 'nbm-application'.</td></tr></table>
<div class="section">
<h3><a name="System_Requirements"></a>System Requirements</h3><a name="System_Requirements"></a>
<p>The following specifies the minimum requirements to run this Maven plugin:</p>
<table border="0" class="bodyTable">
<tr class="a">
<td>Maven</td>
<td>3.0.5</td></tr>
<tr class="b">
<td>JDK</td>
<td>1.7</td></tr>
<tr class="a">
<td>Memory</td>
<td>No minimum requirement.</td></tr>
<tr class="b">
<td>Disk Space</td>
<td>No minimum requirement.</td></tr></table></div>
<div class="section">
<h3><a name="Usage"></a>Usage</h3><a name="Usage"></a>
<p>You should specify the version in your project's plugin configuration:</p>
<div class="source">
<pre>&lt;project&gt;
  ...
  &lt;build&gt;
    &lt;!-- To define the plugin version in your parent POM --&gt;
    &lt;pluginManagement&gt;
      &lt;plugins&gt;
        &lt;plugin&gt;
          &lt;groupId&gt;org.netbeans.maven&lt;/groupId&gt;
          &lt;artifactId&gt;nbm-maven-plugin&lt;/artifactId&gt;
          &lt;version&gt;4.2-SNAPSHOT&lt;/version&gt;
        &lt;/plugin&gt;
        ...
      &lt;/plugins&gt;
    &lt;/pluginManagement&gt;
    &lt;!-- To use the plugin goals in your POM or parent POM --&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.netbeans.maven&lt;/groupId&gt;
        &lt;artifactId&gt;nbm-maven-plugin&lt;/artifactId&gt;
        &lt;version&gt;4.2-SNAPSHOT&lt;/version&gt;
      &lt;/plugin&gt;
      ...
    &lt;/plugins&gt;
  &lt;/build&gt;
  ...
&lt;/project&gt;
</pre></div>
<p>For more information, see <a class="externalLink" href="http://maven.apache.org/guides/mini/guide-configuring-plugins.html">&quot;Guide to Configuring Plug-ins&quot;</a></p></div></div>
</div>
</div>
</div>
<div class='grid-container incubator-area' style='margin-top: 64px'>
    <div class='grid-x grid-padding-x'>
        <div class='large-auto cell text-center'>
            <a href="https://www.apache.org/">
                <img style="width: 320px" title="Apache Software Foundation" src="/images/asf_logo_wide.svg" />
            </a>
        </div>
        <div class='large-auto cell text-center'>
            <a href="https://www.apache.org/events/current-event.html">
               <img style="width:234px; height: 60px;" title="Apache Software Foundation current event" src="https://www.apache.org/events/current-event-234x60.png"/>
            </a>
        </div>
    </div>
</div>
<div class='footer-disclaimer'>
    <div class="footer-disclaimer-content">
        <p>Copyright &copy; 2017-2018 <a href="https://www.apache.org">The Apache Software Foundation</a>.</p>
        <p>Licensed under the Apache <a href="https://www.apache.org/licenses/">license</a>, version 2.0</p>
        <p><a href="https://incubator.apache.org/" alt="Apache Incubator"><img src='/images/incubator_feather_egg_logo_bw_crop.png' title='Apache Incubator'></img></a></p>
        <div style='max-width: 40em; margin: 0 auto'>
            <p>Apache NetBeans is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
            <p>Apache Incubator, Apache, the Apache feather logo, the Apache NetBeans logo, and the Apache Incubator project logo are trademarks of <a href="https://www.apache.org">The Apache Software Foundation</a>.</p>
            <p>Oracle and Java are registered trademarks of Oracle and/or its affiliates.</p>
        </div>
        
    </div>
</div>
<a href="https://github.com/apache/incubator-netbeans-mavenutils"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_green_007200.png" alt="Fork me on GitHub"></a>



        <script src="/js/vendor/jquery-3.2.1.min.js"></script>
        <script src="/js/vendor/what-input.js"></script>
        <script src="/js/vendor/jquery.colorbox-min.js"></script>
        <script src="/js/vendor/foundation.min.js"></script>
        <script src="/js/netbeans.js"></script>
        <script>
            
            $(function(){ $(document).foundation(); });
        </script>
</body>