<!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 Plugins Utilities &#x2013; Project Dependencies</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> <a href="../nbm-maven-plugin/index.html">NBM Plugin</a> </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>
<div id="preamble">
<div class="sectionbody">
<a name="Project_Dependencies"></a>
<div class="section">
<h2><a name="Project_Dependencies"></a>Project Dependencies</h2><a name="Project_Dependencies_compile"></a>
<div class="section">
<h3><a name="compile"></a>compile</h3>
<p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>Licenses</th></tr>
<tr class="b">
<td>org.apache.ant</td>
<td><a class="externalLink" href="http://ant.apache.org/">ant</a></td>
<td>1.9.2</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="a">
<td>org.apache.maven</td>
<td>maven-plugin-api</td>
<td>3.0.4</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr></table></div><a name="Project_Dependencies_test"></a>
<div class="section">
<h3><a name="test"></a>test</h3>
<p>The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>Licenses</th></tr>
<tr class="b">
<td>junit</td>
<td><a class="externalLink" href="http://junit.org">junit</a></td>
<td>4.12</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a>
<div class="section">
<h2><a name="Project_Transitive_Dependencies"></a>Project Transitive Dependencies</h2>
<p>The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.</p><a name="Project_Transitive_Dependencies_compile"></a>
<div class="section">
<h3><a name="compile"></a>compile</h3>
<p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Classifier</th>
<th>Type</th>
<th>Licenses</th></tr>
<tr class="b">
<td>org.apache.ant</td>
<td><a class="externalLink" href="http://ant.apache.org/">ant-launcher</a></td>
<td>1.9.2</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="a">
<td>org.apache.maven</td>
<td>maven-artifact</td>
<td>3.0.4</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="b">
<td>org.apache.maven</td>
<td>maven-model</td>
<td>3.0.4</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="a">
<td>org.codehaus.plexus</td>
<td><a class="externalLink" href="http://plexus.codehaus.org/plexus-classworlds/">plexus-classworlds</a></td>
<td>2.4</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="b">
<td>org.codehaus.plexus</td>
<td><a class="externalLink" href="http://plexus.codehaus.org/plexus-containers/plexus-component-annotations/">plexus-component-annotations</a></td>
<td>1.5.5</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="a">
<td>org.codehaus.plexus</td>
<td><a class="externalLink" href="http://plexus.codehaus.org/plexus-utils">plexus-utils</a></td>
<td>2.0.6</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="b">
<td>org.sonatype.sisu</td>
<td><a class="externalLink" href="http://code.google.com/p/guava-libraries/sisu-guava/">sisu-guava</a></td>
<td>0.9.9</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="a">
<td>org.sonatype.sisu</td>
<td><a class="externalLink" href="http://code.google.com/p/google-guice/sisu-guice/">sisu-guice</a></td>
<td>3.1.0</td>
<td>no_aop</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="b">
<td>org.sonatype.sisu</td>
<td><a class="externalLink" href="http://sisu.sonatype.org/sisu-inject/containers/guice-bean/sisu-inject-bean/">sisu-inject-bean</a></td>
<td>2.3.0</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License, Version 1.0</a></td></tr>
<tr class="a">
<td>org.sonatype.sisu</td>
<td><a class="externalLink" href="http://sisu.sonatype.org/sisu-inject/containers/guice-bean/guice-plexus/sisu-inject-plexus/">sisu-inject-plexus</a></td>
<td>2.3.0</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License, Version 1.0</a></td></tr></table></div><a name="Project_Transitive_Dependencies_test"></a>
<div class="section">
<h3><a name="test"></a>test</h3>
<p>The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>Licenses</th></tr>
<tr class="b">
<td>org.hamcrest</td>
<td><a class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">hamcrest-core</a></td>
<td>1.3</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New BSD License</a></td></tr></table></div></div><a name="Project_Dependency_Graph"></a>
<div class="section">
<h2><a name="Project_Dependency_Graph"></a>Project Dependency Graph</h2>
<script language="javascript" type="text/javascript">
      function toggleDependencyDetails( divId, imgId )
      {
        var div = document.getElementById( divId );
        var img = document.getElementById( imgId );
        if( div.style.display == '' )
        {
          div.style.display = 'none';
          img.src='./images/icon_info_sml.gif';
          img.alt='[Information]';
        }
        else
        {
          div.style.display = '';
          img.src='./images/close.gif';
          img.alt='[Close]';
        }
      }
</script>
<a name="Dependency_Tree"></a>
<div class="section">
<h3><a name="Dependency_Tree"></a>Dependency Tree</h3>
<ul>
<li>org.netbeans.maven:nb-shared:jar:1.3-SNAPSHOT <img id="_img1" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep0', '_img1' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep0" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Apache NetBeans Maven Utilities - NBM Plugins Utilities</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Maven plugin for creating Maven Repository out of a Apache NetBeans installation (and other sources) for consumption by the projects using nbm-maven-plugin.</p>
<p><b>URL: </b><a class="externalLink" href="http://netbeans.apache.org/mavenutilities/nb-shared">http://netbeans.apache.org/mavenutilities/nb-shared</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License 2</a></p></td></tr></table></div>
<ul>
<li>org.apache.maven:maven-plugin-api:jar:3.0.4 (compile) <img id="_img3" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep2', '_img3' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep2" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Maven Plugin API</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>The API for plugins - Mojos - development.</p>
<p><b>URL: </b>http://maven.apache.org/ref/3.0.4//maven-plugin-api</p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
<ul>
<li>org.apache.maven:maven-model:jar:3.0.4 (compile) <img id="_img5" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep4', '_img5' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep4" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Maven Model</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Model for Maven POM (Project Object Model)</p>
<p><b>URL: </b>http://maven.apache.org/ref/3.0.4//maven-model</p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
<ul>
<li>org.codehaus.plexus:plexus-utils:jar:2.0.6 (compile) <img id="_img7" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep6', '_img7' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep6" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Plexus Common Utilities</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>A collection of various utility classes to ease working with strings, files, command lines, XML and more.</p>
<p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-utils">http://plexus.codehaus.org/plexus-utils</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
<li>org.apache.maven:maven-artifact:jar:3.0.4 (compile) <img id="_img9" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep8', '_img9' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep8" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Maven Artifact</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Maven is a project development management and
    comprehension tool. Based on the concept of a project object model:
    builds, dependency management, documentation creation, site
    publication, and distribution publication are all controlled from
    the declarative file. Maven can be extended by plugins to utilise a
    number of other development tools for reporting or the build
    process.</p>
<p><b>URL: </b>http://maven.apache.org/ref/3.0.4//maven-artifact</p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
<li>org.sonatype.sisu:sisu-inject-plexus:jar:2.3.0 (compile) <img id="_img11" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep10', '_img11' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep10" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Sisu-Inject-Plexus : Aggregate OSGi bundle</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>There is currently no description associated with this project.</p>
<p><b>URL: </b><a class="externalLink" href="http://sisu.sonatype.org/sisu-inject/containers/guice-bean/guice-plexus/sisu-inject-plexus/">http://sisu.sonatype.org/sisu-inject/containers/guice-bean/guice-plexus/sisu-inject-plexus/</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License, Version 1.0</a></p></td></tr></table></div>
<ul>
<li>org.codehaus.plexus:plexus-component-annotations:jar:1.5.5 (compile) <img id="_img13" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep12', '_img13' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep12" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Plexus :: Component Annotations</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Plexus Component &quot;Java 5&quot; Annotations, to describe plexus components properties in java sources with
    standard annotations instead of javadoc annotations.</p>
<p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-containers/plexus-component-annotations/">http://plexus.codehaus.org/plexus-containers/plexus-component-annotations/</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
<li>org.codehaus.plexus:plexus-classworlds:jar:2.4 (compile) <img id="_img15" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep14', '_img15' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep14" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Plexus Classworlds</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>A class loader framework</p>
<p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-classworlds/">http://plexus.codehaus.org/plexus-classworlds/</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
<li>org.sonatype.sisu:sisu-inject-bean:jar:2.3.0 (compile) <img id="_img17" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep16', '_img17' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep16" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Sisu-Inject-Bean : Aggregate OSGi bundle</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>There is currently no description associated with this project.</p>
<p><b>URL: </b><a class="externalLink" href="http://sisu.sonatype.org/sisu-inject/containers/guice-bean/sisu-inject-bean/">http://sisu.sonatype.org/sisu-inject/containers/guice-bean/sisu-inject-bean/</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License, Version 1.0</a></p></td></tr></table></div>
<ul>
<li>org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0 (compile) <img id="_img19" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep18', '_img19' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep18" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Sisu Guice - Core Library</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Patched build of Guice: a lightweight dependency injection framework for Java 5 and above</p>
<p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/google-guice/sisu-guice/">http://code.google.com/p/google-guice/sisu-guice/</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
<ul>
<li>org.sonatype.sisu:sisu-guava:jar:0.9.9 (compile) <img id="_img21" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep20', '_img21' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep20" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Sisu Guava - Core Library</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Patched build of Guava: Google Core Libraries for Java 1.5+</p>
<p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/guava-libraries/sisu-guava/">http://code.google.com/p/guava-libraries/sisu-guava/</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li></ul></li></ul></li>
<li>junit:junit:jar:4.12 (test) <img id="_img23" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep22', '_img23' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep22" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>JUnit</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck.</p>
<p><b>URL: </b><a class="externalLink" href="http://junit.org">http://junit.org</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></p></td></tr></table></div>
<ul>
<li>org.hamcrest:hamcrest-core:jar:1.3 (test) <img id="_img25" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep24', '_img25' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep24" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Hamcrest Core</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>This is the core API of hamcrest matcher framework to be used by third-party framework providers. This includes the a foundation set of matcher implementations for common operations.</p>
<p><b>URL: </b><a class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">https://github.com/hamcrest/JavaHamcrest/hamcrest-core</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New BSD License</a></p></td></tr></table></div></li></ul></li>
<li>org.apache.ant:ant:jar:1.9.2 (compile) <img id="_img27" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep26', '_img27' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep26" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Apache Ant Core</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>master POM</p>
<p><b>URL: </b><a class="externalLink" href="http://ant.apache.org/">http://ant.apache.org/</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
<ul>
<li>org.apache.ant:ant-launcher:jar:1.9.2 (compile) <img id="_img29" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep28', '_img29' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep28" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Apache Ant Launcher</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>master POM</p>
<p><b>URL: </b><a class="externalLink" href="http://ant.apache.org/">http://ant.apache.org/</a></p>
<p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li></ul></div></div><a name="Licenses"></a>
<div class="section">
<h2><a name="Licenses"></a>Licenses</h2>
<p><b>Eclipse Public License, Version 1.0: </b>Sisu-Inject-Bean : Aggregate OSGi bundle, Sisu-Inject-Plexus : Aggregate OSGi bundle</p>
<p><b>Apache License 2: </b>Apache NetBeans Maven Utilities - NBM Plugins Utilities</p>
<p><b>Eclipse Public License 1.0: </b>JUnit</p>
<p><b>New BSD License: </b>Hamcrest Core</p>
<p><b>The Apache Software License, Version 2.0: </b>Apache Ant Core, Apache Ant Launcher, Maven Artifact, Maven Model, Maven Plugin API, Plexus :: Component Annotations, Plexus Classworlds, Plexus Common Utilities, Sisu Guava - Core Library, Sisu Guice - Core Library, Sisu-Inject-Bean : Aggregate OSGi bundle</p></div><a name="Dependency_File_Details"></a>
<div class="section">
<h2><a name="Dependency_File_Details"></a>Dependency File Details</h2>
<table border="0" class="bodyTable">
<tr class="a">
<th>Filename</th>
<th>Size</th>
<th>Entries</th>
<th>Classes</th>
<th>Packages</th>
<th>Java Version</th>
<th title="Indicates whether these dependencies have been compiled with debug information.">Debug Information</th></tr>
<tr class="b">
<td>junit-4.12.jar</td>
<td>314.9 kB</td>
<td>323</td>
<td>286</td>
<td>30</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="a">
<td>ant-1.9.2.jar</td>
<td>2 MB</td>
<td>1212</td>
<td>1131</td>
<td>61</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="b">
<td>ant-launcher-1.9.2.jar</td>
<td>18.3 kB</td>
<td>14</td>
<td>5</td>
<td>1</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="a">
<td>maven-artifact-3.0.4.jar</td>
<td>52.1 kB</td>
<td>57</td>
<td>32</td>
<td>11</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="b">
<td>maven-model-3.0.4.jar</td>
<td>163.6 kB</td>
<td>67</td>
<td>50</td>
<td>3</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="a">
<td>maven-plugin-api-3.0.4.jar</td>
<td>49.3 kB</td>
<td>46</td>
<td>25</td>
<td>6</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="b">
<td>plexus-classworlds-2.4.jar</td>
<td>47.1 kB</td>
<td>52</td>
<td>37</td>
<td>5</td>
<td>1.4</td>
<td>Yes</td></tr>
<tr class="a">
<td>plexus-component-annotations-1.5.5.jar</td>
<td>4.2 kB</td>
<td>15</td>
<td>3</td>
<td>1</td>
<td>1.5</td>
<td>No</td></tr>
<tr class="b">
<td>plexus-utils-2.0.6.jar</td>
<td>223.4 kB</td>
<td>120</td>
<td>95</td>
<td>9</td>
<td>1.4</td>
<td>Yes</td></tr>
<tr class="a">
<td>hamcrest-core-1.3.jar</td>
<td>45 kB</td>
<td>52</td>
<td>45</td>
<td>3</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="b">
<td>sisu-guava-0.9.9.jar</td>
<td>1.5 MB</td>
<td>1183</td>
<td>1163</td>
<td>10</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="a">
<td>sisu-guice-3.1.0-no_aop.jar</td>
<td>357.4 kB</td>
<td>310</td>
<td>295</td>
<td>8</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="b">
<td>sisu-inject-bean-2.3.0.jar</td>
<td>289.1 kB</td>
<td>256</td>
<td>224</td>
<td>15</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="a">
<td>sisu-inject-plexus-2.3.0.jar</td>
<td>204.4 kB</td>
<td>207</td>
<td>163</td>
<td>27</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="b">
<th>Total</th>
<th>Size</th>
<th>Entries</th>
<th>Classes</th>
<th>Packages</th>
<th>Java Version</th>
<th>Debug Information</th></tr>
<tr class="a">
<td>14</td>
<td>5.3 MB</td>
<td>3914</td>
<td>3554</td>
<td>190</td>
<td>1.5</td>
<td>13</td></tr>
<tr class="b">
<td>compile: 12</td>
<td>compile: 4.9 MB</td>
<td>compile: 3539</td>
<td>compile: 3223</td>
<td>compile: 157</td>
<td>-</td>
<td>compile: 11</td></tr>
<tr class="a">
<td>test: 2</td>
<td>test: 360 kB</td>
<td>test: 375</td>
<td>test: 331</td>
<td>test: 33</td>
<td>-</td>
<td>test: 2</td></tr></table></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>