[ 
http://jira.codehaus.org/browse/MNG-4709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=225409#action_225409
 ] 

Dan Allen commented on MNG-4709:
--------------------------------

It's more than just good. It's essential.

Currently, there is one local repository, but let's refer to it a cache. If I 
build project 1, which depends on repository A and repository B, my cache will 
be populated with the required dependencies fetch from either of those two 
repositories. If I then build project 2, which depends on repository C, it will 
consult my local cache for artifacts and may find artifacts that were pulled 
from repository A or B, even if they are not in repository C. What we have is 
an inconsistent truth. There is no way that project 2 should ever see the 
artifacts from A and B. Absolutely not.

In fact, this whole concept of "nuking your local repository" should have been 
a huge red flag that something is seriously wrong. A cache should never be a 
superset of what it is caching. Yet, that's what is happening. In fact, Maven 
is creating a local repository that is completely unique from any other 
repository in the world (and not just a subset of a known repository).

If it's true that repository artifacts are never removed remotely (which is a 
fairly reliable truth), you should definitely never have to nuke your local 
repository.

What needs to happen is that there needs to be a local repository for each 
remote repository.

~/.m2/repository/A
~/.m2/repository/B
~/.m2/repository/C

Only if I add repository B to project 2 should it find artifacts that where 
fetched by building project 1...and then only those from repository B, not A.

To cite a precedence, this is how apt and yum work.

> Separate local repository for each remote repository
> ----------------------------------------------------
>
>                 Key: MNG-4709
>                 URL: http://jira.codehaus.org/browse/MNG-4709
>             Project: Maven 2 & 3
>          Issue Type: New Feature
>          Components: Artifacts and Repositories
>            Reporter: Paul Gier
>            Assignee: Brett Porter
>
> It would be good if Maven used a separate local repository directory for each 
> remote repository that was used.  This would avoid the problem of two 
> repositories using the same GAV for a different artifact.  This would also 
> allow the user to easily see where an artifact in the local repository was 
> downloaded from.
> In addition the local repository used for "mvn install" could also be 
> separated, so that it would not conflict with artifacts downloaded from 
> remote repositories.

-- 
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

        

Reply via email to