Details
-
New Feature
-
Status: Closed
-
Minor
-
Resolution: Won't Fix
-
3.2.1
-
None
-
None
Description
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.
Attachments
Issue Links
- is related to
-
MINSTALL-126 localRepositoryPath for install like for install-file
- Open