----- Developing Archiva ----- Henri Yandell ----- 20 October 2006 ----- ~~ 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 Goal The idea here is to explain how to develop Archiva; or at least to provide some insight into what is what within the maven/archiva/ directory. Subprojects The following subprojects exist within Archiva: * archiva-applet - The progress bar on the checksum checking page. * archiva-configuration - A facade on top of the Plexus configuration XML. * archiva-converter - converts an m1 repository to an m2 one - currently not hooked up * archiva-core - central code, business objects, modello etc. * archiva-discoverer - monitors the managed repositories and kicks off the indexing. * archiva-indexer - the lucene indexing. * archiva-plexus-application - archiva can run on plexus as well as as a war. This creates a plexus app. * archiva-plexus-runtime - archiva can run on plexus as well as as a war. This runs lots of apps. * archiva-proxy - proxies repositories? * archiva-reports-standard - a couple of reports are implemented. Not very pluginable yet. * archiva-repository-layer - a query layer for the reports * archiva-security - webapp security * archiva-utils - some handy archiva specific utils * archiva-webapp - creates a war file * design - contains a mock-up currently * maven-meeper - rsync scripts to sync repositories. Also converts m1 repositories to m2 repositories. Concepts There are various terms in Archiva that are worth explaining and defining. * "Managed" - A managed repository is a repository which Archiva is sitting on top of that may be browsed. * "Indexed" - The ability to search a managed repository. * "Proxied" - A remote repository which an existing managed repository can be used as a facade for. * "Synchronized" - A remote repository which is physically copied down to be managed under Archiva. * "Identifier" - A short ID for your repository that will be used in URLs. Material that needs pulling into this site * {{{http://docs.codehaus.org/display/MAVEN/Repository+Manager} Repository Manager design wiki}} * {{{http://docs.codehaus.org/display/MAVEN/Maven+repository+tools} Repository tools wiki}} * {{{http://docs.codehaus.org/display/MAVEN/Repository+Security} Repository security wiki}}