<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<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="author" content="Maria Odea Ching
Olivier Lamy" />
    <meta name="Date-Creation-yyyymmdd" content="20130207" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva Documentation &#x2013; Understanding Repository Configuration of Apache Archiva</title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-1.6.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.6.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="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="../../../" 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="../index.html" title="Apache Archiva">Apache Archiva</a><span class="divider">/</span></li>
      <li class=""><a href="../../../index.html" title="Apache Archiva">Apache Archiva</a><span class="divider">/</span></li>
    <li class="active ">Understanding Repository Configuration of Apache Archiva</li>
        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-11-04</li>
          <li id="projectVersion" class="pull-right">Version: 3.0.0-SNAPSHOT</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
<ul class="nav nav-list">
          <li class="nav-header">Introduction</li>
    <li><a href="../quick-start.html" title="Quick Start"><span class="none"></span>Quick Start</a>  </li>
    <li><a href="../tour/index.html" title="Feature Tour"><span class="none"></span>Feature Tour</a>  </li>
    <li><a href="../release-notes.html" title="Release Notes"><span class="none"></span>Release Notes</a>  </li>
    <li><a href="../../../download.html" title="Downloads"><span class="none"></span>Downloads</a>  </li>
          <li class="nav-header">Users Guide</li>
    <li><a href="../userguide/browsing.html" title="Browsing"><span class="none"></span>Browsing</a>  </li>
    <li><a href="../userguide/searching.html" title="Searching"><span class="none"></span>Searching</a>  </li>
    <li><a href="../userguide/delete-artifact.html" title="Deleting an Artifact"><span class="none"></span>Deleting an Artifact</a>  </li>
    <li><a href="../userguide/using-repository.html" title="Using as a repository"><span class="none"></span>Using as a repository</a>  </li>
    <li><a href="../userguide/deploy.html" title="Deploying to repository"><span class="none"></span>Deploying to repository</a>  </li>
    <li><a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories"><span class="none"></span>Configuring Virtual Repositories</a>  </li>
    <li><a href="../userguide/rss.html" title="Rss Feeds in Archiva"><span class="none"></span>Rss Feeds in Archiva</a>  </li>
    <li><a href="../userguide/querying-artifacts.html" title="Querying Artifacts"><span class="none"></span>Querying Artifacts</a>  </li>
          <li class="nav-header">Administrators Guide</li>
    <li><a href="../adminguide/installing.html" title="Installing Archiva"><span class="icon-chevron-right"></span>Installing Archiva</a>  </li>
    <li><a href="../adminguide/databases.html" title="Databases"><span class="none"></span>Databases</a>  </li>
    <li><a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage"><span class="none"></span>Repositories Content Storage</a>  </li>
    <li><a href="../adminguide/security.html" title="Security"><span class="icon-chevron-right"></span>Security</a>  </li>
    <li><a href="../adminguide/configuration.html" title="Archiva Configuration"><span class="icon-chevron-down"></span>Archiva Configuration</a>
      <ul class="nav nav-list">
    <li class="active"><a href="#"><span class="none"></span>Repositories</a>
  </li>
    <li><a href="../adminguide/proxy-connectors.html" title="Proxy Connectors"><span class="none"></span>Proxy Connectors</a>  </li>
    <li><a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules"><span class="none"></span>Proxy Connectors Rules</a>  </li>
    <li><a href="../adminguide/network-proxies.html" title="Network Proxies"><span class="none"></span>Network Proxies</a>  </li>
    <li><a href="../adminguide/network-configuration.html" title="Network Configuration"><span class="none"></span>Network Configuration</a>  </li>
    <li><a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support"><span class="none"></span>Legacy (Maven 1) Support</a>  </li>
    <li><a href="../adminguide/consumers.html" title="Consumers"><span class="none"></span>Consumers</a>  </li>
    <li><a href="../adminguide/staging-repositories.html" title="Staging Repositories"><span class="none"></span>Staging Repositories</a>  </li>
    <li><a href="../adminguide/appearance-configuration.html" title="Appearance Configuration"><span class="none"></span>Appearance Configuration</a>  </li>
    <li><a href="../adminguide/ui-configuration.html" title="UI Configuration"><span class="none"></span>UI Configuration</a>  </li>
    <li><a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration"><span class="none"></span>File Locking Configuration</a>  </li>
    <li><a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration"><span class="none"></span>Url Failure Cache Configuration</a>  </li>
    <li><a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration"><span class="none"></span>Redback Runtime Configuration</a>  </li>
      </ul>
  </li>
    <li><a href="../adminguide/webservices/rest.html" title="REST Apis"><span class="none"></span>REST Apis</a>  </li>
    <li><a href="../adminguide/configuration-files.html" title="Configuration Files"><span class="none"></span>Configuration Files</a>  </li>
    <li><a href="../adminguide/system-status.html" title="System Status"><span class="none"></span>System Status</a>  </li>
    <li><a href="../adminguide/logging.html" title="Log Files"><span class="icon-chevron-right"></span>Log Files</a>  </li>
    <li><a href="../adminguide/reports.html" title="Reports"><span class="none"></span>Reports</a>  </li>
          <li class="nav-header">Customising Archiva</li>
    <li><a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin"><span class="none"></span>Writing a Consumer Plugin</a>  </li>
          <li class="nav-header">More Information</li>
    <li><a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki"><span class="none"></span>Archiva Wiki</a>  </li>
          <li class="nav-header">ASF</li>
    <li><a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a>  </li>
    <li><a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a>  </li>
    <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a>  </li>
    <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a>  </li>
          <li class="nav-header">Project Documentation</li>
    <li><a href="../project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a>  </li>
  </ul>
<form id="search-form" action="https://www.google.com/search" method="get" >
      <input value="http://archiva.apache.org/docs/3.0.0-SNAPSHOT/" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript">asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
          <hr />
          <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
                          <div id="twitter">
        <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" 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>
        </div>
                  <div class="clear"></div>
              <div class="clear"></div>
  <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>
              </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >
<div class="section">
<h2><a name="Understanding_Repository_Configuration_of_Apache_Archiva"></a>Understanding Repository Configuration of Apache Archiva</h2>
<p>Archiva has two types of repository configuration: managed repository and remote repository.</p>
<div class="section">
<h3><a name="Managed_Repository"></a>Managed Repository</h3>
<p>A managed repository is a repository which resides locally to the server where Archiva is running. It could serve as a proxy repository, an internal deployment repository or a local mirror repository.</p>
<p>Managed repository fields:</p>
<table border="1" class="table table-striped">
<tr class="a">
<td align="left"><b>Id</b></td>
<td align="left">The identifier of the repository. This must be unique.</td></tr>
<tr class="b">
<td align="left"><b>Name</b></td>
<td align="left">The name of the repository. This is the display name.</td></tr>
<tr class="a">
<td align="left"><b>Directory</b></td>
<td align="left">The location of the repository. If the path specified does not exist, Archiva will create the missing directories.</td></tr>
<tr class="b">
<td align="left"><b>Index Directory</b></td>
<td align="left">The location of the index files generated by Archiva. If no location is specified, then the index directory (named <tt>.indexer</tt>) will be created at the root of the repository directory. This directory contains the packaged/bundled index which is consumed by different consumers of the index such as M2Eclipse.</td></tr>
<tr class="a">
<td align="left"><b>Type</b></td>
<td align="left">The repository layout (maven 2 or maven 1)</td></tr>
<tr class="b">
<td align="left"><b>Cron Expression</b></td>
<td align="left">The <a class="externalLink" href="http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html">cron schedule</a> when repository scanning will be executed.</td></tr>
<tr class="a">
<td align="left"><b>Days Older</b></td>
<td align="left">The first option for repository purge. Archiva will check how old the artifact is and if it is older than the set number of days in this field, then the artifact will be deleted respecting the retention count of course. In order to disable the purge by number of days old and set Archiva to purge by retention count, just set the repository purge field to 0. The maximum number of days which can be set here is 1000. See the Repository Purge section below for more details.</td></tr>
<tr class="b">
<td align="left"><b>Retention Count</b></td>
<td align="left">The second option for repository purge. When running the repository purge, Archiva will retain only the number of artifacts set for this field for a specific snapshot version. See the Repository Purge section below for more details.</td></tr>
<tr class="a">
<td align="left"><b>Description</b></td>
<td align="left">Additional information about the repository.</td></tr>
<tr class="b">
<td align="left"><b>Releases</b></td>
<td align="left">Specifies whether there are released artifacts in the repository.</td></tr>
<tr class="a">
<td align="left"><b>Snapshots</b></td>
<td align="left">Specifies whether there are snapshot artifacts in the repository.</td></tr>
<tr class="b">
<td align="left"><b>Block Redeployments</b></td>
<td align="left">Specifies whether released artifacts that are already existing in the repository can be overwritten. Note that this only take effects for non-snapshot deployments.</td></tr>
<tr class="a">
<td align="left"><b>Scanned</b></td>
<td align="left">Specifies whether the repository can be scanned, meaning it is a local repository which should be indexed, purged, etc.</td></tr>
<tr class="b">
<td align="left"><b>Delete Released Snapshots</b></td>
<td align="left">Specifies whether to remove those snapshot artifacts which already has release versions of it in the repository during repository purge.</td></tr>
<tr class="a">
<td align="left"><b>Staging Repository</b></td>
<td align="left">Automatic creation of a stage repository for this local repository.</td></tr>
<tr class="b">
<td align="left"><b> Skip Packed Index Creation</b></td>
<td align="left">Avoid creation of compressed index for IDE usage.</td></tr></table><img src="../images/managed-repositories.png" alt="Managed Repositories" />
<p>Each repository has its own http(s)/webdav url. This allows the user to browse and access the repository via http(s)/webdav. The url has the following format:</p>
<div class="source"><pre class="prettyprint">http://[URL TO ARCHIVA]/repository/[REPOSITORY ID] (e.g. http://localhost:8080/repository/releases).</pre></div>
<p>A pom snippet is also available for each repository. The &lt;distributionManagement&gt; section can be copied and pasted into a project's pom to specify that the project will be deployed in that managed repository. The &lt;repositories&gt; section on the other hand, can be copied and pasted to a project's pom.xml or to Maven's settings.xml to tell Maven to get artifacts from the managed repository when building the project.</p></div>
<div class="section">
<h3><a name="Remote_Repository"></a>Remote Repository</h3>
<p>A remote repository is a repository which resides remotely. These repositories are usually the proxied repositories. See Proxy Connectors on how to proxy a repository.</p>
<p>Remote repository fields:</p>
<table border="1" class="table table-striped">
<tr class="a">
<td align="left"><b>Id</b></td>
<td align="left">The identifier of the remote repository.</td></tr>
<tr class="b">
<td align="left"><b>Name</b></td>
<td align="left">The name of the remote repository.</td></tr>
<tr class="a">
<td align="left"><b>Url</b></td>
<td align="left">The url of the remote repository. It is also possible to use a 'file://' url to proxy a local repository. Be careful that if this local repository is a managed repository of archiva which has some proxies connectors, those ones won't be triggered.</td></tr>
<tr class="b">
<td align="left"><b>Username</b></td>
<td align="left">The username (if authentication is needed) to be used to access the repository.</td></tr>
<tr class="a">
<td align="left"><b>Password</b></td>
<td align="left">The password (if authentication is needed) to be used to access the repository.</td></tr>
<tr class="b">
<td align="left"><b>Download Timeout</b></td>
<td align="left">The time in seconds after which a download from the remote repository is stopped.</td></tr>
<tr class="a">
<td align="left"><b>Type</b></td>
<td align="left">The layout (maven 2 or maven 1) of the remote repository.</td></tr>
<tr class="b">
<td align="left"><b>Download Remote Index</b></td>
<td align="left">To activate downloading remote index to add available remote artifacts in search queries.</td></tr>
<tr class="a">
<td align="left"><b>Remote Index Url</b></td>
<td align="left">Can be relative to Url - path of the remote index directory.</td></tr>
<tr class="b">
<td align="left"><b>Cron expression</b></td>
<td align="left">Cron expression for downloading remote index (default weekly on sunday)</td></tr>
<tr class="a">
<td align="left"><b>Index Directory</b></td>
<td align="left">Path to store index directory, default will be ${appserver.base}/data/remotes/${repositoryId}/.indexer</td></tr>
<tr class="b">
<td align="left"><b>Download Remote Index Timeout</b></td>
<td align="left">Time in seconds, after which download of remote index files will be stopped (default 300).</td></tr>
<tr class="a">
<td align="left"><b>Proxy for Remote Download Index</b></td>
<td align="left">Proxy to use for downloading remote index files.</td></tr>
<tr class="b">
<td align="left"><b>Download Remote Index on Startup</b></td>
<td align="left">If selected, the remote index will be downloaded on Archiva startup.</td></tr>
<tr class="a">
<td align="left"><b>Description</b></td>
<td align="left">Can be used to store additional information about the repository.</td></tr>
<tr class="b">
<td align="left"><b>Connection Check Path</b></td>
<td align="left">If set, the connection to the remote repository is checked by validating the existence of the given file / artifact. Some repositories do not allow to browse the base directory and the standard check may fail. The path is relative to the repository Url.</td></tr>
<tr class="a">
<td align="left"><b>Additionnal Url Parameters</b></td>
<td align="left">Key/Value pairs to add to url when querying remote repository.</td></tr>
<tr class="b">
<td align="left"><b>Additionnal Http Headers</b></td>
<td align="left">Key/Value pairs to add as http headers when querying remote repository.</td></tr></table><img src="../images/remote-repositories.png" alt="Remote Repositories" />
<p>You can also trigger an immediate download of remote index files.</p>
<div class="section">
<h4><a name="Maven_Index_from_Remote_repositories"></a>Maven Index from Remote repositories</h4>
<p>If you have configured download remote index, those files (Maven Indexer project format) will be available in the path http://[URL TO ARCHIVA]/repository/id/.index (you can consume those files for IDE)</p></div></div>
<div class="section">
<h3><a name="Scanning_a_Repository"></a>Scanning a Repository</h3>
<p>Repository scan can be executed on schedule or it can be explicitly executed by clicking the 'Action'-&gt;'Directories Scanning' button in the repositories page.</p><img src="../images/repositories.png" alt="Repositories" />
<p>For every artifact found by the repository scanner, processing is done on this artifact by different consumers. Examples of the processing done are: indexing, repository purge and database update. Details about consumers are available in the <a href="./consumers.html"> Consumers</a> page.</p></div>
<div class="section">
<h3><a name="Repository_Purge"></a>Repository Purge</h3>
<p>Repository purge is the process of cleaning up the repository of old snapshots. When deploying a snapshot to a repository, Maven deploys the project/artifact with a timestamped version. Doing daily/nightly builds of the project then tends to bloat the repository. What if the artifact is large? Then disk space will definitely be a problem. That's where Archiva's repository purge feature comes in. Given a criteria to use -- by the number of days old and by retention count, it would clean up the repository by removing old snapshots.</p>
<p>To activate repository purge you have to enable the &quot;repository-purge&quot; consumer in the &quot;Repository Scanning&quot; page.</p>
<p>Please take note that the by number of days old criteria is activated by default (set to 100 days). In order to de-activate it and use the by retention count criteria, you must set the Repository Purge By Days Older field to 0. Another thing to note here is that if the by number of days old criteria is activated, the retention count would still be respected (See the Repository Purge By Days Older section below for more details) but not the other way around.</p>
<p>Let's take a look at different behaviours for repository purge using the following scenario:</p>
<div class="source"><pre class="prettyprint">Artifacts in the repository:

../artifact-x/2.0-SNAPSHOT/artifact-x-20061118.060401-2.jar
../artifact-x/2.0-SNAPSHOT/artifact-x-20061118.060401-2.pom
../artifact-x/2.0-SNAPSHOT/artifact-x-20070113.034619-3.jar
../artifact-x/2.0-SNAPSHOT/artifact-x-20070113.034619-3.pom
../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.jar
../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.pom</pre></div>
<ol style="list-style-type: decimal">
<li>Repository Purge By Number of Days Older
<p>Using this criteria for the purge, Archiva will check how old an artifact is and if it is older than the set value in the repository purge by days older field, then the artifact will be deleted respecting the retention count of course.</p>
<p>If repository purge by days older is set to 100 days (with repository purge by retention count field set to 1), and the current date is let's say 03-01-2007, given the scenario above.. the following artifacts will be retained: artifact-x-20070113.034619-3.jar, artifact-x-20070113.034619-3.pom, artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. It is clear in the version timestamps that these 4 artifacts are not more than 100 days old from the current date (which is 03-01-2007 in our example) so they are all retained. In this case the retention count doesn't have any effect since the priority is the age of the artifact.</p>
<p>Now, if the repository purge by days older is set to 30 days (with repository purge by retention count field still set to 1) and the current date is still 03-01-2007, then given the same scenario above.. only the following artifacts will be retained: artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. In this case, we can see that the retained artifacts are still not older by the number of days set in the repository purge by days older field and the retention count is still met.</p>
<p>Now, let's set the repository purge by days older to 10 days (with repository purge by retention count field still set to 1) and the current date is still 03-01-2007, then still given the same repository contents above.. the following artifacts will still be retained: artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. It is clear from the version timestamps that the artifacts ARE MORE THAN the repository purge by days older value, which is 10 days. Why is it still retained? Recall the value of the repository purge by retention count -- 1 :) This ensures that there is ALWAYS 1 artifact timestamped version retained for every unique version snapshot directory of an artifact.</p></li>
<li>Repository Purge By Retention Count
<p>If the repository purge by retention count field is set to 2, then only the artifacts artifact-x-20070113.034619-3.jar, artifact-x-20070113.034619-3.pom, artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom will be retained in the repository. The oldest snapshots will be deleted maintaining only a number of snapshots equivalent to the set retention count (regardless of how old or new the artifact is).</p></li></ol>
<div class="section">
<h4><a name="Deleting_Released_Snapshots"></a>Deleting Released Snapshots</h4>
<p>You can also configure Archiva to clean up snapshot artifacts that have already been released. This can be done by ticking the Delete Released Snapshots checkbox in the Repository Configuration form.</p>
<p>Once this feature is enabled, if Archiva encounters a snapshot artifact during repository scanning, it would check <b>all</b> the repositories configured for a released version of that snapshot. If it finds one, then it would delete the entire snapshot version directory.</p>
<p>It should be noted that this feature is entirely separate from the repository purge by number of days older and by retention count.</p></div></div></div>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
      <div class="row span12">
        <a href="http://archiva.apache.org/docs/3.0.0-SNAPSHOT/privacy-policy.html">Privacy Policy</a>
      </div>
        </div>
                          <div id="ohloh" class="pull-right">
      <script type="text/javascript" src="https://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
    </body>
</html>