<!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="author" content="Maria Odea Ching
Olivier Lamy" />
    <meta name="Date-Creation-yyyymmdd" content="20130207" />
    <meta name="Date-Revision-yyyymmdd" content="20200614" />
    <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.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="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="../" 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: 2020-06-14</li>
              <li id="projectVersion" class="pull-right">
                    Version: 2.2.5
        </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">
          <i class="none"></i>
        Quick Start</a>
            </li>
                
      <li>
  
                          <a href="../tour/index.html" title="Feature Tour">
          <i class="none"></i>
        Feature Tour</a>
            </li>
                
      <li>
  
                          <a href="../release-notes.html" title="Release Notes">
          <i class="none"></i>
        Release Notes</a>
            </li>
                
      <li>
  
                          <a href="../../../download.html" title="Downloads">
          <i class="none"></i>
        Downloads</a>
            </li>
                              <li class="nav-header">Users Guide</li>
                              
      <li>
  
                          <a href="../userguide/browsing.html" title="Browsing">
          <i class="none"></i>
        Browsing</a>
            </li>
                
      <li>
  
                          <a href="../userguide/searching.html" title="Searching">
          <i class="none"></i>
        Searching</a>
            </li>
                
      <li>
  
                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
          <i class="none"></i>
        Deleting an Artifact</a>
            </li>
                
      <li>
  
                          <a href="../userguide/using-repository.html" title="Using as a repository">
          <i class="none"></i>
        Using as a repository</a>
            </li>
                
      <li>
  
                          <a href="../userguide/deploy.html" title="Deploying to repository">
          <i class="none"></i>
        Deploying to repository</a>
            </li>
                
      <li>
  
                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
          <i class="none"></i>
        Configuring Virtual Repositories</a>
            </li>
                
      <li>
  
                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
          <i class="none"></i>
        Rss Feeds in Archiva</a>
            </li>
                
      <li>
  
                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
          <i class="none"></i>
        Querying Artifacts</a>
            </li>
                              <li class="nav-header">Administrators Guide</li>
                                                                                                                    
      <li>
  
                          <a href="../adminguide/installing.html" title="Installing Archiva">
          <i class="icon-chevron-right"></i>
        Installing Archiva</a>
                  </li>
                
      <li>
  
                          <a href="../adminguide/databases.html" title="Databases">
          <i class="none"></i>
        Databases</a>
            </li>
                
      <li>
  
                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
          <i class="none"></i>
        Repositories Content Storage</a>
            </li>
                                                                                                      
      <li>
  
                          <a href="../adminguide/security.html" title="Security">
          <i class="icon-chevron-right"></i>
        Security</a>
                  </li>
                                                                                                                                                                                                                                                                                                    
      <li>
  
                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
          <i class="icon-chevron-down"></i>
        Archiva Configuration</a>
                    <ul class="nav nav-list">
                    
      <li class="active">
  
            <a href="#"><i class="none"></i>Repositories</a>
          </li>
                    
      <li>
  
                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
          <i class="none"></i>
        Proxy Connectors</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
          <i class="none"></i>
        Proxy Connectors Rules</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
          <i class="none"></i>
        Network Proxies</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
          <i class="none"></i>
        Network Configuration</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
          <i class="none"></i>
        Legacy (Maven 1) Support</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/consumers.html" title="Consumers">
          <i class="none"></i>
        Consumers</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
          <i class="none"></i>
        Staging Repositories</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
          <i class="none"></i>
        Appearance Configuration</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
          <i class="none"></i>
        UI Configuration</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
          <i class="none"></i>
        File Locking Configuration</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
          <i class="none"></i>
        Url Failure Cache Configuration</a>
            </li>
                    
      <li>
  
                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
          <i class="none"></i>
        Redback Runtime Configuration</a>
            </li>
              </ul>
        </li>
                
      <li>
  
                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
          <i class="none"></i>
        REST Apis</a>
            </li>
                
      <li>
  
                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
          <i class="none"></i>
        Configuration Files</a>
            </li>
                
      <li>
  
                          <a href="../adminguide/system-status.html" title="System Status">
          <i class="none"></i>
        System Status</a>
            </li>
                                                                                                      
      <li>
  
                          <a href="../adminguide/logging.html" title="Log Files">
          <i class="icon-chevron-right"></i>
        Log Files</a>
                  </li>
                
      <li>
  
                          <a href="../adminguide/reports.html" title="Reports">
          <i class="none"></i>
        Reports</a>
            </li>
                              <li class="nav-header">Customising Archiva</li>
                              
      <li>
  
                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
          <i class="none"></i>
        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">
          <i class="none"></i>
        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">
          <i class="none"></i>
        How Apache Works</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
          <i class="none"></i>
        Foundation</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
          <i class="none"></i>
        Sponsoring Apache</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
          <i class="none"></i>
        Thanks</a>
            </li>
                              <li class="nav-header">Project Documentation</li>
                                                                                                  
      <li>
  
                          <a href="../project-info.html" title="Project Information">
          <i class="icon-chevron-right"></i>
        Project Information</a>
                  </li>
            </ul>
                
                    
                            <form id="search-form" action="http://www.google.com/search" method="get" >
    
  <input value="http://archiva.apache.org/docs/2.2.5/" 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>
          
          <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" >
                                  
            <!-- Licensed to the Apache Software Foundation (ASF) under one --><!-- or more contributor license agreements.  See the NOTICE file --><!-- distributed with this work for additional information --><!-- regarding copyright ownership.  The ASF licenses this file --><!-- to you under the Apache License, Version 2.0 (the --><!-- "License"); you may not use this file except in compliance --><!-- with the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, --><!-- software distributed under the License is distributed on an --><!-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --><!-- KIND, either express or implied.  See the License for the --><!-- specific language governing permissions and limitations --><!-- under the License. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
<h2><a name="Understanding_Repository_Configuration_of_Apache_Archiva"></a>Understanding Repository Configuration of Apache Archiva</h2><!-- TODO: revise more as suggested by Jeff in the dev list -->
<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>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><b>Since 1.4-M4</b>: 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 'Scan Repository Now' button in the repositories page. By default, Archiva only processes new artifacts in the repository with respect to the last run of the repository scanner. Meaning that if the artifact's last modified date is newer than the last repository scan, then the artifact will be processed. Otherwise, it will be skipped. You can override this behavior and force Archiva to process all artifacts regardless of its age by ticking the 'Process All Artifacts' checkbox in the repositories page and clicking the 'Scan Repository Now' button.</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>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>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">
                              <p >Copyright &copy;                    2006&#x2013;2020
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
        </div>

                                                                  
<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/2.2.5/privacy-policy.html">Privacy Policy</a>
</div>
                  
        
          
    
    
                
    <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>
