[ http://jira.codehaus.org/browse/MNG-4980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=254775#action_254775 ]
Kari J. Niemi commented on MNG-4980: ------------------------------------ I'm thumbs up with this as well. A recommended practice for CI build servers and multiuser environments is to have local repository per CI build or per user. This effectively makes it impossible for the OS to use file cacheing efficiently as there are 10s to hundreds of copies of the same artifacts. I have no benchmarks though. Of course, for build reproducability(troublehooting it is good that there are separate lccal repository structures for the different builds/servers. But wouldn't there be any OS cacheing friendlier way for storing the maven artifacts that are supposedly shared by many users/CI builds? > Shared local repository > ----------------------- > > Key: MNG-4980 > URL: http://jira.codehaus.org/browse/MNG-4980 > Project: Maven 2 & 3 > Issue Type: New Feature > Components: Artifacts and Repositories > Affects Versions: 3.1 > Reporter: Markus KARG > Priority: Minor > > Execution speed of mvn is directly dependent to the fact that there are lots > of artifacts to get resolved via internet (or even slow LANs). To reduce the > impact of the internet's delay, one can use artifact managers like Nexus > serving as a cache to all LAN users. To reduce the impact of the LAN's delay, > mvn uses a local repository serving as a cache to all local users. > But that local cache (.m2/repository) is private to the user. While it makes > sense that there is a private repository for every user (e. g. so one user is > not able to install manually into other user's repository, or so one user > cannot see really private things of another user), it makes no sense that > there is no shared cache for all users. > My proposal would be that mvn splits the local repository into two parts. The > first part is a cache used by all users of that machine (which could be > hundreds in case of terminal servers or university class room machines) (on > Windows best located at %PROGRAMDATA%\.m2\repository). It gets filled solely > by downloading from a private or public repository, but one cannot install > into that to keep privacy and stability. The second part is the existing > repository (%USERPROFILE%\.m2\repository) and it gets filled only by manual > installing using mvn install. > Thanks to this splitting, chances are good that shared machines will have > latest dependencies stored locally already, reducing LAN delay. Builds run > faster then. Also, the user's own local repository is much cleaner then, > showing only his own manually installed projects, but not cached dependencies. -- 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