<!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="20230316" />
    <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: 2023-03-16</li>
              <li id="projectVersion" class="pull-right">
                    Version: 2.2.10
        </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.10/" 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;2023
                        <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.10/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>
