[
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