On 28 Sep 2012, at 4:15 PM, Pascal Rapicault <[email protected]> wrote:

> I'm currently doing work for Ericsson where we have a similar setup (Terminal 
> Server on windows and AFS on *nix).
> The difficulty in this setup is not network access but limited user storage 
> so the goal is to try to share as much as possible among the users. This was 
> such a concern for Ericsson that they built extensions to Eclipse to make 
> sure that users would not have copies of the plugins they install in their 
> user folder but would run them from a shared location.

If you go down this road you have to be very careful - SNAPSHOTs are 
unsharable, because they are unrepeatable. I would be confused out of my mind 
if my perfectly working SNAPSHOT suddenly stopped working because it was 
silently replaced by someone else's SNAPSHOT.

As to released artefacts these could be shared, this would be relatively easy 
to script. Have a "master" repository, and every so often sweep the local 
user's repos for files that are common in name and content to the master repo, 
then hard link a replacement.

> Now to go back to Maven I can see how the desire to share artifacts applies 
> since I've had the same discussion last week :). Basically the local maven 
> repo is made of 3 things:
>       - released versions of non-corporate artifacts (e.g. content from 
> central, jboss, etc.)
>       - released versions of corporate artifacts
>       - snapshots versions of corporate artifacts
>       (yes there is snapshot of non corporate but I think they represent a 
> minority)
> 
> Using this as a starting point, I think it would be possible to address this 
> in a clean way the problem if we were to make the local maven repository a 
> bit smarter (i.e. code change :)) . For example I think a solution that could 
> work is to have a read only shared cache that only contains the released 
> artifacts and have that chained to the local maven repository. This way when 
> an artifact is looked up, it is first looked up in the local cache, then in 
> the shared cache, and if it is not availble, then it is downloaded and stored 
> into the local cache (note that  this solution of chained maven repo could 
> also be used to isolate snapshot from released artifacts)
> 
> Since the shared cache is read only, its population could be done by doing a 
> dump of the repo manager content into the shared folder at regular interval.

The trouble with this is that you still have to populate and maintain the 
shared cache on a regular basis, so you're doomed to some sort of scripting 
anyway. Keep all the magic in the script, and you don't have to touch maven at 
all. That means no special plugins, no maven behaviour unique to your 
environment, no documentation or training needed.

Regards,
Graham
--

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to