You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Michael Hüttermann <mi...@huettermann.net> on 2010/01/17 19:49:58 UTC

Re: file system storage -- why?

Hello,

thanks for answering, but the question is not answered, and I want add
some further thoughts.

One common pattern is not to store derived artifacts. Although I
understand Maven pretty good believe me that and like its approach, I
think about the design decision why it is the way it is. Why not put all
artifacts into the same version control system you already use while
managing your sources? Why storing the artifacts at all, if you can
reproduce them at any time (having the sources and the build system). I'm
just collecting arguments. :-)

With "everywhere" I mean everywhere Maven runs it stores the artifacts in
the file system. I know that you can configure where the repository is
located, physically.

With "stuff" I mean all artifacts managed by Maven, pardon me my casual
wording.


Michael



> Hi Michael,
>
>> why is Maven storing the stuff in the file system everywhere? Locally,
>> on
>> the developers' desktop it is ok.
> You mean /home/username/.m2/repository ....this is the usual location
> for all artifacts which are used once...the intention to increase speed
> during building...which is not "everywhere"  and not on the
> desktop....only per user base....(Unix, Windows and Mac OS as well).
>
> If you really like to change that behaviour you can make a configuration
> to use a system wide storage...instead of a user based storage...but
> this would pin you on a particular system.....
>
>
>> Centrally, why not in a common version
>> control system?
> It might be a possible solution, but the setup is very simple without
> such an requirement...and would usually reduce build time....
>
> On the other hand you can use a simple Web-DAV Setup for a deployment
> area which uses a Version Control tool to store the deployed artifacts
> (may be SVN etc.).
>
> And one other thought is coming into my mind....your build should be
> repeatable if you do things right (pinning version of Plugin etc.)  it
> shouldn't matter where you build...
>
>  >
>> What are the design decisions for that?
> I can only assume what the intentions are...
>
> Kind regards
> Karl Heinz Marbaise
> --
> SoftwareEntwicklung Beratung Schulung    Tel.: +49 (0) 2405 / 415 893
> Dipl.Ing.(FH) Karl Heinz Marbaise        ICQ#: 135949029
> Hauptstrasse 177                         USt.IdNr: DE191347579
> 52146 Würselen                           http://www.soebes.de
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: file system storage -- why?

Posted by Benjamin Damm <bd...@silverspringnet.com>.
> Why storing the artifacts at all, if you can
> reproduce them at any time (having the sources and the build system).

One good reason is because the cost of reproducing an artifact typically 
increases over time.  If you produce an artifact today, and need to use it 
again 6 months from now, it'll take you less time to produce it today and 
store it, then recover it 6 months from now (nearly for free) than to checkout 
old copies of code, recover old copies of dependencies, make sure your tools 
are the older versions (compiler, maven plugins, etc).

Usually in complex software engineering projects it is my experience that 
you'll never actually produce the same binary again.  In fact, it is hard 
enough for two different developers to produce the same artifact at the same 
time, if the project is large enough.  Usually there is a continuous 
integration server that is the source of truth.

> With "everywhere" I mean everywhere Maven runs it stores the artifacts in
> the file system. I know that you can configure where the repository is
> located, physically.

You could also just delete the cached copies you don't want or need, if it is 
a problem to have copies.

-Ben


On Sunday 17 January 2010 10:49:58 am Michael Hüttermann wrote:
> Hello,
>
> thanks for answering, but the question is not answered, and I want add
> some further thoughts.
>
> One common pattern is not to store derived artifacts. Although I
> understand Maven pretty good believe me that and like its approach, I
> think about the design decision why it is the way it is. Why not put all
> artifacts into the same version control system you already use while
> managing your sources? Why storing the artifacts at all, if you can
> reproduce them at any time (having the sources and the build system). I'm
> just collecting arguments. :-)
>
> With "everywhere" I mean everywhere Maven runs it stores the artifacts in
> the file system. I know that you can configure where the repository is
> located, physically.
>
> With "stuff" I mean all artifacts managed by Maven, pardon me my casual
> wording.
>
>
> Michael
>
> > Hi Michael,
> >
> >> why is Maven storing the stuff in the file system everywhere? Locally,
> >> on
> >> the developers' desktop it is ok.
> >
> > You mean /home/username/.m2/repository ....this is the usual location
> > for all artifacts which are used once...the intention to increase speed
> > during building...which is not "everywhere"  and not on the
> > desktop....only per user base....(Unix, Windows and Mac OS as well).
> >
> > If you really like to change that behaviour you can make a configuration
> > to use a system wide storage...instead of a user based storage...but
> > this would pin you on a particular system.....
> >
> >> Centrally, why not in a common version
> >> control system?
> >
> > It might be a possible solution, but the setup is very simple without
> > such an requirement...and would usually reduce build time....
> >
> > On the other hand you can use a simple Web-DAV Setup for a deployment
> > area which uses a Version Control tool to store the deployed artifacts
> > (may be SVN etc.).
> >
> > And one other thought is coming into my mind....your build should be
> > repeatable if you do things right (pinning version of Plugin etc.)  it
> > shouldn't matter where you build...
> >
> >> What are the design decisions for that?
> >
> > I can only assume what the intentions are...
> >
> > Kind regards
> > Karl Heinz Marbaise
> > --
> > SoftwareEntwicklung Beratung Schulung    Tel.: +49 (0) 2405 / 415 893
> > Dipl.Ing.(FH) Karl Heinz Marbaise        ICQ#: 135949029
> > Hauptstrasse 177                         USt.IdNr: DE191347579
> > 52146 Würselen                           http://www.soebes.de
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org

   
-- 
Benjamin Damm
Silver Spring Networks
650-298-4200 x201

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org