<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia 
 | Rendered using Apache Maven Fluido Skin 1.3.1
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20170512" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva Base :: Consumers &#x2013; Project Dependencies</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>

    
              <!-- Google Analytics -->
    <script type="text/javascript">

      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-140879-5']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();

    </script>
          </head>
        <body class="topBarEnabled">
          
                        
                    
                

    <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
                                  <div class="container"><div class="nav-collapse">
            
                
                                <ul class="nav">
                          <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li class="dropdown-submenu">
                                      <a href="project-info.html"  title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
</li>
                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</a>
</li>
                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
</li>
                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
</li>
                                  <li>      <a href="distribution-management.html"  title="Distribution Management">Distribution Management</a>
</li>
                                  <li>      <a href="index.html"  title="About">About</a>
</li>
                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                                  <li>      <a href="license.html"  title="Project License">Project License</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                                  <li>      <a href="modules.html"  title="Project Modules">Project Modules</a>
</li>
                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
</li>
                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
</li>
                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</a>
</li>
                              </ul>
            </li>
                          </ul>
      </li>
                  </ul>
          
                      <form id="search-form" action="http://www.google.com/search" method="get"  class="navbar-search pull-right" >
    
  <input value="http://archiva.apache.org/ref/2.2.3" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
          
                                                    
        
        
        <ul class="nav pull-right"><li>
    
    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow archiva</a>
    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

        </li></ul>
                              
                   
                      </div>
          
        </div>
      </div>
    </div>
    
        <div class="container">
          <div id="banner">
        <div class="pull-left">
                                                  <a href="../../../../index.html" id="bannerLeft">
                                                                                                <img src="../../../../images/archiva.png"  alt="Apache Archiva"/>
                </a>
                      </div>
        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                              <li class="">
                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
        Apache</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../../" title="Apache Archiva">
        Apache Archiva</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../../" title="Archiva :: Modules">
        Archiva :: Modules</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../" title="Archiva :: Base">
        Archiva :: Base</a>
                    <span class="divider">/</span>
      </li>
                <li class="">
                    <a href="./" title="Archiva Base :: Consumers">
        Archiva Base :: Consumers</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">Project Dependencies</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 12 May 2017</li>
            
                            </ul>
      </div>

      
                
        <div id="bodyColumn" >
                                  
            <a name="Project_Dependencies"></a>
<div class="section">
<h2><a name="Project_Dependencies"></a>Project Dependencies</h2><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="table table-striped">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>License</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>
<tr class="a">
<td>org.easymock</td>
<td><a class="externalLink" href="http://www.easymock.org/easymock">easymock</a></td>
<td>3.2</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td></tr>
<tr class="b">
<td>org.easymock</td>
<td><a class="externalLink" href="http://www.easymock.org/easymockclassextension">easymockclassextension</a></td>
<td>3.2</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</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_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="table table-striped">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>License</th></tr>
<tr class="b">
<td>cglib</td>
<td><a class="externalLink" href="http://cglib.sourceforge.net/">cglib-nodep</a></td>
<td>2.2.2</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">ASF 2.0</a></td></tr>
<tr class="a">
<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>
<tr class="b">
<td>org.objenesis</td>
<td><a class="externalLink" href="http://objenesis.org">objenesis</a></td>
<td>1.3</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</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 toggleDependencyDetail( 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';
        }
        else
        {
          div.style.display = '';
          img.src='./images/close.gif';
        }
      }
</script>
<a name="Dependency_Tree"></a>
<div class="section">
<h3><a name="Dependency_Tree"></a>Dependency Tree</h3>
<ul>
<li>org.apache.archiva:archiva-consumers:pom:2.2.3 <img id="_img1" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep0', '_img1' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep0" style="display:none">
<table border="0" class="table table-striped">
<tr class="a">
<th>Archiva Base :: Consumers</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Archiva is an application for managing one or more remote
      repositories, including administration, artifact handling,
      browsing and searching.</p>
<p><b>URL: </b><a class="externalLink" href="http://archiva.apache.org/ref/2.2.3/archiva-base/archiva-consumers">http://archiva.apache.org/ref/2.2.3/archiva-base/archiva-consumers</a></p>
<p><b>Project License: </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>junit:junit:jar:4.12 (test) <img id="_img3" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep2', '_img3' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep2" style="display:none">
<table border="0" class="table table-striped">
<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 License: </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="_img5" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep4', '_img5' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep4" style="display:none">
<table border="0" class="table table-striped">
<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 License: </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.easymock:easymock:jar:3.2 (test) <img id="_img7" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep6', '_img7' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep6" style="display:none">
<table border="0" class="table table-striped">
<tr class="a">
<th>EasyMock</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>EasyMock provides an easy way to create Mock Objects for interfaces and classes generating them on the fly</p>
<p><b>URL: </b><a class="externalLink" href="http://www.easymock.org/easymock">http://www.easymock.org/easymock</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></p></td></tr></table></div>
<ul>
<li>cglib:cglib-nodep:jar:2.2.2 (test) <img id="_img9" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep8', '_img9' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep8" style="display:none">
<table border="0" class="table table-striped">
<tr class="a">
<th>Code Generation Library</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Code generation library with shaded ASM dependecies</p>
<p><b>URL: </b><a class="externalLink" href="http://cglib.sourceforge.net/">http://cglib.sourceforge.net/</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">ASF 2.0</a></p></td></tr></table></div></li>
<li>org.objenesis:objenesis:jar:1.3 (test) <img id="_img11" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep10', '_img11' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep10" style="display:none">
<table border="0" class="table table-striped">
<tr class="a">
<th>Objenesis</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>A library for instantiating Java objects</p>
<p><b>URL: </b><a class="externalLink" href="http://objenesis.org">http://objenesis.org</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></p></td></tr></table></div></li></ul></li>
<li>org.easymock:easymockclassextension:jar:3.2 (test) <img id="_img13" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep12', '_img13' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep12" style="display:none">
<table border="0" class="table table-striped">
<tr class="a">
<th>EasyMock Class extension</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>The EasyMock Class Extension allows to generate Mock Objects for classes</p>
<p><b>URL: </b><a class="externalLink" href="http://www.easymock.org/easymockclassextension">http://www.easymock.org/easymockclassextension</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></p></td></tr></table></div></li></ul></li></ul></div></div><a name="Licenses"></a>
<div class="section">
<h2><a name="Licenses"></a>Licenses</h2>
<p><b>ASF 2.0: </b>Code Generation Library</p>
<p><b>Apache 2: </b>EasyMock, EasyMock Class extension, Objenesis</p>
<p><b>New BSD License: </b>Hamcrest Core</p>
<p><b>Eclipse Public License 1.0: </b>JUnit</p>
<p><b>The Apache Software License, Version 2.0: </b>Archiva Base :: Consumers</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="table table-striped">
<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>cglib-nodep-2.2.2.jar</td>
<td>326.92 kB</td>
<td>255</td>
<td>251</td>
<td>9</td>
<td>1.2</td>
<td>Yes</td></tr>
<tr class="a">
<td>junit-4.12.jar</td>
<td>314.93 kB</td>
<td>323</td>
<td>286</td>
<td>30</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="b">
<td>easymock-3.2.jar</td>
<td>119.78 kB</td>
<td>99</td>
<td>90</td>
<td>3</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="a">
<td>easymockclassextension-3.2.jar</td>
<td>10.41 kB</td>
<td>16</td>
<td>7</td>
<td>2</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="b">
<td>hamcrest-core-1.3.jar</td>
<td>45.02 kB</td>
<td>52</td>
<td>45</td>
<td>3</td>
<td>1.5</td>
<td>Yes</td></tr>
<tr class="a">
<td>objenesis-1.3.jar</td>
<td>40.57 kB</td>
<td>50</td>
<td>35</td>
<td>9</td>
<td>1.3</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>6</td>
<td>857.64 kB</td>
<td>795</td>
<td>714</td>
<td>56</td>
<td>1.5</td>
<td>6</td></tr>
<tr class="b">
<td>test: 6</td>
<td>test: 857.64 kB</td>
<td>test: 795</td>
<td>test: 714</td>
<td>test: 56</td>
<td>-</td>
<td>test: 6</td></tr></table></div><a name="Dependency_Repository_Locations"></a>
<div class="section">
<h2><a name="Dependency_Repository_Locations"></a>Dependency Repository Locations</h2>
<table border="0" class="table table-striped">
<tr class="a">
<th>Repo ID</th>
<th>URL</th>
<th>Release</th>
<th>Snapshot</th></tr>
<tr class="b">
<td>apache.snapshots</td>
<td><a class="externalLink" href="http://repository.apache.org/snapshots">http://repository.apache.org/snapshots</a></td>
<td>No</td>
<td>Yes</td></tr>
<tr class="a">
<td>archiva.snapshots</td>
<td><a class="externalLink" href="https://archiva-repository.apache.org/archiva/repository/snapshots">https://archiva-repository.apache.org/archiva/repository/snapshots</a></td>
<td>No</td>
<td>Yes</td></tr>
<tr class="b">
<td>central</td>
<td><a class="externalLink" href="https://repo.maven.apache.org/maven2">https://repo.maven.apache.org/maven2</a></td>
<td>Yes</td>
<td>No</td></tr></table>
<p>Repository locations for each of the Dependencies.</p>
<table border="0" class="table table-striped">
<tr class="a">
<th>Artifact</th>
<th>apache.snapshots</th>
<th>archiva.snapshots</th>
<th>central</th></tr>
<tr class="b">
<td>cglib:cglib-nodep:jar:2.2.2</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="https://repo.maven.apache.org/maven2/cglib/cglib-nodep/2.2.2/cglib-nodep-2.2.2.jar"><img alt="Found at https://repo.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr>
<tr class="a">
<td>junit:junit:jar:4.12</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar"><img alt="Found at https://repo.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr>
<tr class="b">
<td>org.easymock:easymock:jar:3.2</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="https://repo.maven.apache.org/maven2/org/easymock/easymock/3.2/easymock-3.2.jar"><img alt="Found at https://repo.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr>
<tr class="a">
<td>org.easymock:easymockclassextension:jar:3.2</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="https://repo.maven.apache.org/maven2/org/easymock/easymockclassextension/3.2/easymockclassextension-3.2.jar"><img alt="Found at https://repo.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr>
<tr class="b">
<td>org.hamcrest:hamcrest-core:jar:1.3</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"><img alt="Found at https://repo.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr>
<tr class="a">
<td>org.objenesis:objenesis:jar:1.3</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="https://repo.maven.apache.org/maven2/org/objenesis/objenesis/1.3/objenesis-1.3.jar"><img alt="Found at https://repo.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr>
<tr class="b">
<th>Total</th>
<th>apache.snapshots</th>
<th>archiva.snapshots</th>
<th>central</th></tr>
<tr class="a">
<td>6 (test: 6)</td>
<td>0</td>
<td>0</td>
<td>6</td></tr></table></div>
                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
                      <div class="row">
                              <p >Copyright &copy;                    2006&#x2013;2017
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
        </div>

        
                <p id="poweredBy" class="pull-right">
                          <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
              </p>
        
          
    
    
                
    <div id="ohloh" class="pull-right">
      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
        </body>
</html>