blob: 4a04741481132396385d048eeb6aef3fe5f7d2f8 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia
| Rendered using Apache Maven Fluido Skin 1.3.1
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20170513" />
<meta http-equiv="Content-Language" content="en" />
<title>Archiva Documentation &#x2013; Virtual Repositories</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 ">Virtual Repositories</li>
<li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2017-05-13</li>
<li id="projectVersion" class="pull-right">
Version: 2.2.3
</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 class="active">
<a href="#"><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-right"></i>
Archiva Configuration</a>
</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.3/" name="sitesearch" type="hidden"/>
<input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
<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. --><div class="section">
<h2><a name="Virtual_Repositories"></a>Virtual Repositories</h2>
<p>This is a new feature for Archiva 1.1. The main advantage of virtual repositories (or repository groups) is that you only need to specify one URL instead of multiple repository URLs if you are using more than 1 proxy repository.</p>
<p>For example, you have the following configuration in your <tt>settings.xml</tt>:</p>
<div class="source">
<pre>&lt;settings&gt;
&lt;!-- omitted xml --&gt;
&lt;profiles&gt;
&lt;profile&gt;
&lt;id&gt;Repository Proxy&lt;/id&gt;
&lt;activation&gt;
&lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
&lt;/activation&gt;
&lt;repositories&gt;
&lt;repository&gt;
&lt;id&gt;internal.releases&lt;/id&gt;
&lt;url&gt;http://localhost:8080/repository/internal.releases/&lt;/url&gt;
&lt;releases&gt;
&lt;enabled&gt;true&lt;/enabled&gt;
&lt;/releases&gt;
&lt;snapshots&gt;
&lt;enabled&gt;false&lt;/enabled&gt;
&lt;/snapshots&gt;
&lt;/repository&gt;
&lt;repository&gt;
&lt;id&gt;third.party.repo&lt;/id&gt;
&lt;url&gt;http://localhost:8080/repository/third.party.repo/&lt;/url&gt;
&lt;releases&gt;
&lt;enabled&gt;true&lt;/enabled&gt;
&lt;/releases&gt;
&lt;snapshots&gt;
&lt;enabled&gt;false&lt;/enabled&gt;
&lt;/snapshots&gt;
&lt;/repository&gt;
&lt;repository&gt;
&lt;id&gt;snapshots&lt;/id&gt;
&lt;url&gt;http://localhost:8080/repository/snapshots/&lt;/url&gt;
&lt;releases&gt;
&lt;enabled&gt;false&lt;/enabled&gt;
&lt;/releases&gt;
&lt;snapshots&gt;
&lt;enabled&gt;true&lt;/enabled&gt;
&lt;/snapshots&gt;
&lt;/repository&gt;
&lt;/repositories&gt;
&lt;/profile&gt;
&lt;!-- omitted xml --&gt;
&lt;/profiles&gt;
&lt;!-- omitted xml --&gt;
&lt;/settings&gt;</pre></div>
<p>If you have a virtual repository configured in Archiva, you only need to configure this in your <tt>settings.xml</tt>:</p>
<div class="source">
<pre>&lt;settings&gt;
&lt;!-- omitted xml --&gt;
&lt;profiles&gt;
&lt;profile&gt;
&lt;id&gt;Repository Proxy&lt;/id&gt;
&lt;activation&gt;
&lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
&lt;/activation&gt;
&lt;repositories&gt;
&lt;repository&gt;
&lt;id&gt;internal.releases&lt;/id&gt;
&lt;url&gt;http://localhost:8080/repository/[repository_group_id]/&lt;/url&gt;
&lt;/repository&gt;
&lt;/repositories&gt;
&lt;/profile&gt;
&lt;!-- omitted xml --&gt;
&lt;/profiles&gt;
&lt;!-- omitted xml --&gt;
&lt;/settings&gt;</pre></div>
<p>And you'll still be able to get all the artifacts that you need. See Configuring Virtual Repositories section for the steps on how to setup a virtual repo in Archiva.</p>
<div class="section">
<h3><a name="How_It_Works"></a>How It Works</h3>
<p>When Archiva receives a request with a virtual repo (or repo group) URL, Archiva would look for the requested artifact from the repositories under that group. It would only check the repositories the user has permission to access (meaning only those repositories which the user has an Obeserver role for). The first resource found for the requested artifact would be returned.</p>
<p>Prior to version 1.4-M2, Virtual repositories can return a Maven index in the path /.indexer path</p></div>
<div class="section">
<h3><a name="Configuring_Virtual_Repositories"></a>Configuring Virtual Repositories</h3>
<p>Below are the steps for setting up the virtual repositories:</p>
<ol style="list-style-type: decimal">
<li>In the webapp, go to the <tt>Repository Groups</tt> page. To create a virtual repository or repository group, go to add tab</li>
<li>To add a repository drag and drop available repositories.<img src="../images/repository-groups.png" alt="" /></li>
<li>Now add the virtual repository URL <tt>http://[host]:[port]/repository/[repository_group_id]/</tt> into your settings.xml the same way you configure regular repositories -- as a <i>mirror</i> or as an additional <i>repository</i>.</li>
<li>If the repositories under the group are secured, you must set your Archiva login credentials in your settings.xml as well. Please take note that the <i>server</i> id should match the repository group identifier.</li></ol></div>
<div class="section">
<h3><a name="Webdav_Browse"></a>Webdav Browse</h3>
<p>Webdav Browse for a virtual repository is a read-only view. It displays the merged contents of all the repositories under that repository group. Just type the url of the virtual repository in your browser in order to view its contents. User will be asked to authenticate if the 'guest' account is not enabled for the repositories. Only those repositories which the user has permission to access will be shown.</p></div>
<div class="section">
<h3><a name="Merged_index"></a>Merged index</h3>
<p>With version 1.4-M2, you can download a merged index for a virtual repository. This merged index is generated &quot;on the fly&quot; with merging repositories index for which the current user has karma. This merged index is available in the path .indexer .</p>
<p>To not generate this merged index on each request, there is a ttl (time to live) value for build merged index. It can be configured in the repository group configuration. This ttl has a default value of 30 minutes.</p></div></div>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p >Copyright &copy; 2006&#x2013;2017
<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.3/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>