<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">










<html>
  <head>
    <title>Archiva Documentation - Browsing</title>
    <style type="text/css" media="all">
      @import url("../css/maven-base.css");
      @import url("../css/maven-theme.css");
      @import url("../css/site.css");
    </style>
    <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
          <meta name="author" content="Maria Odea Ching" />
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
                            <?xml version="1.0" encoding="UTF-8"?>
<script type="text/javascript">var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script>
                                <?xml version="1.0" encoding="UTF-8"?>
<script type="text/javascript">var pageTracker = _gat._getTracker("UA-140879-5");
pageTracker._initData();
pageTracker._trackPageview();</script>
                    </head>
  <body class="composite">
    <div id="banner">
                  <a href="../../" id="bannerLeft">
    
                                    <img src="http://archiva.apache.org/images/archiva.png" alt="" />
    
            </a>
                        <a href="http://www.apache.org/" id="bannerRight">
    
                                    <img src="http://www.apache.org/images/asf_logo_wide.png" alt="" />
    
            </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
  
  
            <div class="xleft">
          
          <a href="http://www.apache.org/">Apache</a>
              &gt;
      
          <a href="../../../">Archiva</a>
              &gt;
      
          <a href="../index.html">1.3.8</a>
                </div>
            <div class="xright">      
  

  
    
  
  
            &nbsp;| Last Published: 11 Apr 2014
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
                   <h5>Introduction</h5>
        <ul>
              
    <li class="none">
              <a href="../quick-start.html">Quick Start</a>
        </li>
              
    <li class="none">
              <a href="../tour/index.html">Feature Tour</a>
        </li>
              
    <li class="none">
              <a href="../release-notes.html">Release Notes</a>
        </li>
              
    <li class="none">
              <a href="http://archiva.apache.org/download.html">Downloads</a>
        </li>
          </ul>
          <h5>Users Guide</h5>
        <ul>
              
    <li class="none">
              <strong>Browsing</strong>
        </li>
              
    <li class="none">
              <a href="../userguide/searching.html">Searching</a>
        </li>
              
    <li class="none">
              <a href="../userguide/find-artifact.html">Identifying an Artifact</a>
        </li>
              
    <li class="none">
              <a href="../userguide/delete-artifact.html">Deleting an Artifact</a>
        </li>
              
    <li class="none">
              <a href="../userguide/using-repository.html">Using as a repository</a>
        </li>
              
    <li class="none">
              <a href="../userguide/deploy.html">Deploying to repository</a>
        </li>
              
    <li class="none">
              <a href="../userguide/virtual-repositories.html">Configuring Virtual Repositories</a>
        </li>
              
    <li class="none">
              <a href="../userguide/rss.html">Rss Feeds in Archiva</a>
        </li>
              
    <li class="none">
              <a href="../userguide/auditlog-report.html">Audit Log Report</a>
        </li>
          </ul>
          <h5>Administrators Guide</h5>
        <ul>
              
                
              
      
            
      
            
      
              
        <li class="collapsed">
              <a href="../adminguide/installing.html">Installing Archiva</a>
              </li>
              
    <li class="none">
              <a href="../adminguide/databases.html">Databases</a>
        </li>
              
                
              
      
            
      
              
        <li class="collapsed">
              <a href="../adminguide/security.html">Security</a>
              </li>
              
                
              
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="../adminguide/configuration.html">Runtime Configuration</a>
              </li>
              
    <li class="none">
              <a href="../adminguide/configuration-files.html">Configuration Files</a>
        </li>
              
                
              
      
            
      
            
      
              
        <li class="collapsed">
              <a href="../adminguide/logging.html">Log Files</a>
              </li>
              
    <li class="none">
              <a href="../adminguide/reports.html">Reports</a>
        </li>
              
    <li class="none">
              <a href="../adminguide/web-services.html">Web Services</a>
        </li>
          </ul>
          <h5>Customising Archiva</h5>
        <ul>
              
    <li class="none">
              <a href="../customising/writing-consumer.html">Writing a Consumer Plugin</a>
        </li>
          </ul>
          <h5>More Information</h5>
        <ul>
              
    <li class="none">
              <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index">Archiva Wiki</a>
        </li>
          </ul>
                                       <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
            <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
          </a>
                       
  

  
    
  
  
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h2>Browsing </h2><div class="section"><h3>Permissions</h3><p>The user can only browse those repositories where the user is an observer or a manager. If the user does not have permission to access any repository, a message saying &quot;You have access to no repositories. Ask your system administrator for access&quot; will be displayed. </p></div><div class="section"><h3>Repository Browse Layout</h3><p>The current layout of the repositories in Repository Browse uses the Maven 2 layout, which is the groupId, artifactId and version. When the version is clicked, the Artifact Info page (see the next section) will be displayed. There is currently an issue with regard to Maven 1 artifacts, see <a href="http://jira.codehaus.org/browse/MRM-585"> http://jira.codehaus.org/browse/MRM-585</a>.</p></div><div class="section"><h3>Artifact Info</h3><p>Items in the repositories are hyperlinked allowing you easy access to view more information. By clicking on the Group ID or Artifact ID you will be taken to the repository browser. The Artifact Info page is divided into six views:</p><p>1. Info. Basic information about the artifact is displayed here. These are the groupId, artifactId, version and packaging. A dependency pom snippet is also available, which a user can just copy and paste in a pom file to declare the artifact as a dependency of the project.</p><p>2. Dependencies. The dependencies of the artifact will be listed here. The user can easily navigate to a specific dependency by clicking on the groupId, artifactId, or version link. The scope of the dependency is also shown.</p><p>3. Dependency Tree. The dependencies of the artifact are displayed in a tree-like view, which can also be navigated.</p><p>4. Used By. Lists all the artifacts in the repository which use this artifact.</p><p>5. Mailing Lists. The project mailing lists available in the artifact's pom are displayed here.</p><p>6. Download. Clicking on this link will download the artifact to your local machine.</p></div><div class="section"><h3>Downloading Artifacts</h3><p>Artifacts can be downloaded from the artifact info page. All files, except for the metadata.xml files, that are associated with the artifact are available in the download box. The size of the files in bytes are displayed at the right section of the download box. </p><p>Note: Upon downloading the artifact, you will be asked to enter your username and password for the repository where the artifact will be downloaded from. Only users with Global Repository Manager, Repository Manager, or Repository Observer roles for that repository can download the artifact.</p></div></div>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2006-2014
    
          The Apache Software Foundation
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>