maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Digulla (JIRA)" <j...@codehaus.org>
Subject [jira] Created: (MRM-244) Mirror/Proxy functionality is broken in Archiva
Date Mon, 04 Dec 2006 14:20:41 GMT
Mirror/Proxy functionality is broken in Archiva
-----------------------------------------------

                 Key: MRM-244
                 URL: http://jira.codehaus.org/browse/MRM-244
             Project: Archiva
          Issue Type: Bug
          Components: remote proxy
            Reporter: Aaron Digulla
            Priority: Critical


Currently, the archiva admin has to specify which sites Archiva should proxy/mirror and in
which managed repository the downloaded artefacts should end up.

This approach has several drawbacks:

- Resources with a similar name but from different sites can end up in the same managed repository.
This is deadly if there is a bug in the resource which is fixed on site A but archiva downloads
it from B. Since the resource exists, Archiva will not download it again even after the problem
is fixed and the maven mirrors re-synchronized.

- Since every POM can define their own repositories, it's very hard to maintain the list of
proxied repositories. The situation gets worse when you download a new plugin which in turn
wants artefacts from other sites which are not yet in the list. Maven will not use Archiva
for these which means every developer downloads those resources.

This also means I have to configure maven to be able to access the internet directly while
I would prefer to be able to force it to make all connections via archiva. This way, I can
fix all broken POMs inhouse, for example.

- In maven's settings, I have to specify which mirrors exist. The key for the decision is
the ID of the repository. Unfortunately, the ID is just an arbitrary string. Many projects
use different IDs for the same repository. Some use "codehaus.org", some use "codehaus". I've
seen POMs which think "codehaus.org" is for snapshots while they use "codehaus" for the releases.

In the end, there is no way to map repository "IDs" to mirrors which will work for all maven
projects out there.

Therefore, I suggest that you change the handling of proxied repositories. Instead of using
mirror settings, I would prefer to use the proxy settings of maven to integrate Archiva.

Archiva should keep a blacklist of repositories which are to be ignored but everything else
should be downloaded into a mirror directory which contains the hostnames of the sites as
first level. This means artefacts from "http://people.apache.org/maven-snapshot-repository/"
would end up in C:\archiva\mirror\people.apache.org\maven-snapshot-repository\..."

If the port number is != 80, you can add another level for the port.

This should allow us to force maven to download everything through Archiva. We would be able
to control which plugins and which versions are used and we could fix broken POMs. We could
even put patched versions of plugins into the mirror directory.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message