You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2008/07/22 23:09:31 UTC

svn commit: r678906 - in /maven/site/trunk/src/site: apt/repository-management.apt xdoc/articles.xml

Author: jvanzyl
Date: Tue Jul 22 14:09:30 2008
New Revision: 678906

URL: http://svn.apache.org/viewvc?rev=678906&view=rev
Log:
o added some real content about repository managers and added descriptions for all known repository manager implementations, taking the descriptions from their respective web sites.


Modified:
    maven/site/trunk/src/site/apt/repository-management.apt
    maven/site/trunk/src/site/xdoc/articles.xml

Modified: maven/site/trunk/src/site/apt/repository-management.apt
URL: http://svn.apache.org/viewvc/maven/site/trunk/src/site/apt/repository-management.apt?rev=678906&r1=678905&r2=678906&view=diff
==============================================================================
--- maven/site/trunk/src/site/apt/repository-management.apt (original)
+++ maven/site/trunk/src/site/apt/repository-management.apt Tue Jul 22 14:09:30 2008
@@ -1,5 +1,5 @@
  ----
- Repository Management
+ Repository Management with Maven Repository Managers
  -----
 
 ~~ Licensed to the Apache Software Foundation (ASF) under one
@@ -22,39 +22,84 @@
 ~~ NOTE: For help with the syntax of this file, see:
 ~~ http://maven.apache.org/doxia/references/apt-format.html
 
-Repository Management
+Repository Management with Maven Repository Managers
 
-*  What is a Build Artifact Repository Manager
-
-   The purpose of a <Maven repository> is to hold all software libraries used within an organization. The responsibility
-    of a <Build Artifact Repository Manager> is to
-
-    1. <<Proxy content from remote artifact repositories>>.
-
-    The proxy functionality gives increased <speed>, better <availability> and makes it <easier find and add
-    dependencies> to their projects (no more which repo holds artifactX?).
-   
-    2. <<Share artifacts between developers>>.
-
-    The repository supports deployment of internal and external snapshots and releases and advanced security options
-    can be to restrict access to sensitive artifacts.
-    This functionality is required to work effectively with a large number of Maven projects and without it it is
-    hard to implement the "one deployment unit, one Maven project" concept.
-
-    3. <<Make it easier to manage repositories and dependencies>>
-
-    The products often provide a graphical user interface that supports search and browsing of the repositories and functionality to view/add/delete artifacts.
-
-* Repository Manager Overview
-
-  Following is an alphabetical list of some repository managers we've heard mentioned around the Maven community:
-
- * {{{http://archiva.apache.org/}Apache Archiva}}
-
- * {{{http://www.jfrog.org/sites/artifactory/latest/}Artifactory}}
-
- * {{{http://nexus.sonatype.org}Nexus Repository Manager}}
+ Maven Repository managers serve two purposes: they act as highly configurable proxies between your organization and the public Maven repositories 
+ and they also provide an organization with a deployment destination for your own generated artifacts.
 
+ Proxying a Maven repository brings a number of benefits. Proxying speeds up builds throughout your organization by installing a local 
+ cache for all artifacts from the Central Maven repository. If a developer in your organization needs to download version 2.5 of the Spring 
+ Framework and you are using a Maven Repository Manager, the dependencies (and the dependency's dependencies) only need to be downloaded from the remote repository 
+ once. With a high-speed connection to the Internet this might seem like a minor concern, but if you are constantly asking your developers to 
+ download hundreds of megabytes of third-party dependencies, the real cost savings are going to be the time it takes Maven to check for new versions 
+ of dependencies and to download dependencies. Serving Maven dependencies from a local repository can save you hundreds of requests over HTTP, and, 
+ in very large multi-project builds, this can shave minutes from a build.
+
+ If your project is relying on a number of SNAPSHOT dependencies, Maven will need to check for updated version of these snapshots. 
+ Depending on the configuration of your remote repositories, Maven will check for SNAPSHOT updates periodically, or it might be checking 
+ for SNAPSHOT updates on every build. When Maven checks for a snapshot update it needs to interrogate the remote repository for the latest 
+ version of the SNAPSHOT dependency. Depending on your connection to the public Internet and the load on the central Maven repository, a 
+ SNAPSHOT update can add seconds to your project's build for each SNAPSHOT update. When you host a local repository proxy with a repository 
+ manager, your repository manager is going to check for SNAPSHOT updates on a regular schedule, and your applications will be able to interact 
+ with a local repository. If you develop software with a lot of SNAPSHOT dependencies, using a local repository manager can often shave minutes from a 
+ large multi-module project build, your 5-10 second SNAPSHOT update checks against the public central repository are going to execute in hundreds of milliseconds (or less).
+
+ In addition to the simple savings in time and bandwidth, a repository manager provides an organization with control over what is downloaded 
+ by Maven. You can include or exclude specific artifacts from the public repository, and having this level of control over what is downloaded from 
+ the central Maven repository is a prerequisite for organizations which need strict control over what dependencies are used throughout an organization. 
+ An organization which wants to standardize on a specific version of a dependency like Hibernate or Spring can enforce this standardization by only 
+ providing access to a specific version of an artifact in a repository manager. Other organizations might be concerned with making sure 
+ that every external dependency has a license compatible with the legal standards of that organization. If a corporation is producing a application 
+ which is distributed, they might want to make sure that no one inadvertently adds a dependency on a third-party library which is covered under a 
+ copy-left license like the GPL. Repository managers provide for the level of control that an organization needs to make sure that overall architecture 
+ and policy can be enforced.
+
+ Aside from the benefits of mediating access to remote repositories, a repository manager also provides something essential to full adoption 
+ of Maven. Unless you expect every member of your organization to download and build every single internal project, you will want to provide 
+ a mechanism for developers and departments to share both SNAPSHOT and releases for internal project artifacts. A Maven repository manager provides your organization 
+ with such a deployment target. Once you install a Maven repository manager, you can start using Maven to deploy snapshots and releases to a custom repository managed 
+ by the repository manager. Over time, this central deployment point for internal projects becomes the fabric for collaboration between different development teams.
+
+ The Following is a list of the known Maven repository managers and listed in chronological order of appearance in the community:
+
+* {{{http://maven-proxy.codehaus.org/}Maven Proxy}}
+
+ Maven Proxy was the first Maven repository manager to come on the scene, but the project is now defuct and it's not recommended for
+ general use anymore. The code that was in Maven Proxy was used as the initial basis of Artifactory.
+
+* Proximity
+
+ Anyone who was using Proximity is now encouraged to use Nexus. The entire codebase of Proximity was absorbed into Nexus.
+
+* {{{http://www.jfrog.org/sites/artifactory/latest/}Artifactory}}
+
+ Artifactory is a Maven 2 enterprise repository. It offers advanced proxying, caching and security facilities to provide a 
+ robust, reproducible and independent build environment when using Maven. Artifactory is being used by clients ranging from 
+ small startup teams to international corporate teams employing distributed development, thus improving the development 
+ experience for tens of thousands of developers. Artifactory exposes a robust artifacts management platform using rich Ajax 
+ web UI and can be run out-of-the-box with a simple "unzip and launch".
+
+* {{{http://archiva.apache.org/}Apache Archiva}}
+
+ Apache Archiva is an extensible repository management software that helps taking care of your own personal or enterprise-wide build artifact repository. It 
+ is the perfect companion for build tools such as Maven, Continuum, and ANT.
+
+ Archiva offers several capabilities, amongst which remote repository proxying, security access management, build artifact storage, 
+ delivery, browsing, indexing and usage reporting, extensible scanning functionality... and many more!
+
+* {{{http://www.pdark.de/dsmp/}Dead Simple Maven Proxy}}
+
+ DSMP is a proxy. It can be used as a repository server but it's main purposs it to act as a filter when Maven accesses the internet. If you need a repository server, use Archiva.
+
+* {{{http://nexus.sonatype.org}Nexus: Maven Repository Manager}}
+
+ Tamas Cservenak started working on Proximity in December 2005 as he was trying to find a way to isolate his own systems from an 
+ incredibly slow ADSL connection provided by a Hungarian ISP. Proximity started as a simple web application to proxy artifacts for 
+ a small organization with connectivity issues. Creating a local on-demand cache for Maven artifacts from the central Maven repository 
+ gave an organization access to the artifacts on the Central Maven Repository, but it also made sure that these artifacts weren't 
+ downloaded over a very slow ADSL connection used by a number of developers. In 2007, Sonatype asked Tamas to help create a similar 
+ product named Nexus. Nexus is currently considered the logical next step to Proximity. Nexus currently has an active development team, 
+ and portions of the indexing code from Nexus are also being used in {{{http://m2eclipse.sonatype.org/}m2eclipse}}
 
 ~~ TODO Add link to comparison matrix on the MAVENUSER wiki that shows the which features the different products have.
 
@@ -62,6 +107,8 @@
 
 * Other resources
 
+  * {{{http://www.sonatype.com/book/reference/repository-manager.html#}Chapter on Nexus in <Maven: The Definitive Guide>}}
+
   * {{{http://www.theserverside.com/tt/articles/article.tss?l=SettingUpMavenRepository}Setting Up Maven Repository}} by Avneet Mangat
 
   * {{{http://docs.codehaus.org/display/MAVENUSER/Maven+Concepts+Repositories}Maven Concepts Repositories}} from Maven wiki

Modified: maven/site/trunk/src/site/xdoc/articles.xml
URL: http://svn.apache.org/viewvc/maven/site/trunk/src/site/xdoc/articles.xml?rev=678906&r1=678905&r2=678906&view=diff
==============================================================================
--- maven/site/trunk/src/site/xdoc/articles.xml (original)
+++ maven/site/trunk/src/site/xdoc/articles.xml Tue Jul 22 14:09:30 2008
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+ <?xml version="1.0" encoding="ISO-8859-1" ?>
 
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
@@ -32,7 +32,7 @@
         <ul>
           <li><strong>Covers:</strong>Maven 2.0.x</li>
           <li><strong>Published:</strong>Not yet</li>
-          <li><strong>Authors:</strong>
+          <li><strong>Authors: </strong>
             <a href="http://www.sonatype.com/">Sonatype (Jason van Zyl, John Casey, Eric Redmond)</a>
           </li>
         </ul>
@@ -97,6 +97,12 @@
             <th>Published</th>
           </tr>
           <tr>
+            <td><a href="http://www.theserverside.com/tt/articles/article.tss?l=Introductiontom2eclipse">Introduction to m2eclipse</a></td>
+            <td>TheServerSide</td>
+            <td>Tim O'Brien, Bruce Snyder, Eugene Kuleshov</td>
+            <td>July 2008</td>
+          </tr>
+          <tr>
             <td><a href="http://msozen.home.anadolu.edu.tr/maven2.x_dokuman.pdf">Maven 2.x (in Turkish)</a></td>
             <td>Anadolu Üniversitesi</td>
             <td>Mustafa Sait Özen</td>