Hi,

I agree with much of what Brandon is saying.

For *open source* projects, Maven's repository is really useful; the
minor inconveniences are worth living with. In particular, such projects
need to conserve disk space and network bandwidth; checking in jars for
each project is therefore a bad idea. Brandon: imagine if Apache
projects used the "check jars in with project" approach; the disk space
needed would multiply 100-fold, with the same jar checked in multiple
times under different projects. It also means that those files are all
downloaded from the apache site, not ibiblio. And it means that users
(who may be on dialup connections) end up downloading the same jars
multiple times even when they already have those jars on their local PC.

For *internal* projects, however, having local jars can be very useful.
Bandwidth is less of an issue; simplicity and reproducable builds are
more important. And as several people have noted on this list (and I've
found from experience too) preventing maven from fetching stuff from
repositories beyond your control is currently *really hard*.

I think it would be really nice if repositories could have a
<remote>false</remote> tag; a "non-remote" repo (using any access
protocol) would be used when offline mode is used. People could then
check a complete maven repository into their project if they wish, and
use a repository declaration with url "file://...", remote set to false,
and offline set to true. This wouldn't be recommended for sites that
host large numbers of projects, as disk-space and bandwidth issues would
cause problems, but it's then easy to set up self-contained builds for
smaller sites. It's not *quite* as simple to use as simply checking in a
directory of jars and pointing to that dir, but it's close - while still
supporting much of maven's standard dependency support. Hmm..could the
same effect be achieved by checking in an "settings.xml" with
localRepository pointing to a checked-in dir, and running maven with
"mvn -s ./settings.xml"?

Brandon: Note that when using <scope>system</scope>, transitive
dependencies aren't supported. It's really meant only for pointing at
files like "rt.jar" from a locally-installed jdk. That doesn't mean you
can't use it for the purpose you want, but that's not its intent.

Cheers,

Simon

On Mon, 2006-04-24 at 16:13 -0600, Brandon Goodin wrote:
> Hey Wayne, I'm sorry if my email tone sounds aggressive... i really am
> not trying to come off that way. So please accept my comments purely
> as an exercise in conversation.
> 
> I totally understand the intellectual property that rights that Sun
> attaches to their jars. I fully respect them. I'm just trying to
> understand why so much emphasis is placed on the centralized jar repo.
> There were plenty of other concerns besides the sun jars that i cited.
> I'm just speaking more from my needs. The repo is cool. But, I see an
> equally acceptable approach of having jars that you check into your
> source code repo. I guess I'm trying more to understand why there is
> such an emphasis on central repo over simply presenting the ability to
> use either/or.
> 
> As an additional note, the centralized repo is only as good as those
> willing to post to it. I've run into the problem that the latest and
> greatest are not always on ibiblio. I've also ran into the problem
> that there are sometimes version gaps. Also, I've seen where there are
> the same jars under different (but similar) group ids. I know i can
> setup a local repo for jars. But, then i find myself wondering why.
> Especially when i already have a versioning repository... SVN.
> 
> Many thanks for your time and responses,
> Brandon
> 
> 
> 
> On 4/24/06, Wayne Fay <[EMAIL PROTECTED]> wrote:
> > That should be "Checking Sun Jars into your SVN repo". Obviously
> > anyone is allowed to download the Sun Jars and install them into their
> > own local Maven repo, or anything else permitted under the Sun BCL
> > terms.
> >
> > Checking the jars into a publicly available distribution service ie
> > Sourceforge CVS/SVN etc is unfortunately not allowed by Sun's
> > licensing.
> >
> > You can go to Sun.com and read the specifics of the BCL if you want,
> > to see what specifically is permitted and what is not.
> >
> > Wayne
> >
> > On 4/24/06, Wayne Fay <[EMAIL PROTECTED]> wrote:
> > > Checking Sun Jars into your repo is a violation of the Sun Binary
> > > Compatibility License which you agreed to when you downloaded the
> > > file. (Assuming the file was downloaded from Sun under the Sun BCL
> > > terms, which most files on Sun.com require you to accept prior to
> > > downloading.)
> > >
> > > I doubt Sun will chase you down and prosecute you, but realize that
> > > some of us actually care about respecting intellectual property and
> > > license requirements. Complaining about the way these Sun Jars are
> > > handled to the Maven User list is really the wrong place -- complain
> > > directly to Sun, ask them to modify the distribution terms of their
> > > licenses, etc.
> > >
> > > Wayne
> > >
> > > On 4/24/06, Brandon Goodin <[EMAIL PROTECTED]> wrote:
> > > > "tons of advantages" - please quantify this.
> > > >
> > > > Personally, I find the repository to be a "nice" piece of Maven. But,
> > > > I don't see it as a cardinal sin to actually distribute libraries in
> > > > your project. If you follow the libary naming convention then who
> > > > cares?
> > > >
> > > > Personally, what i find annoying are the copious additional, needless,
> > > > and redundant dependencies that i have to download because of the
> > > > dependencies defined in the pom of a jar that i need to download. I
> > > > also find it annoying to have to manually install several small
> > > > libraries to my local repo cuz i can't distribute them as a result of
> > > > licensing. It is additionally annoying to have to setup a jar
> > > > repository that will be used for jars that will be needed that can
> > > > only be distributed privately. All of this... vs. me just referencing
> > > > them in my source tree?
> > > >
> > > > I like Maven a lot and really enjoy the standard project layout
> > > > features and plugins that are provided. But, the jar repository has
> > > > caused me more time and less efficiency. However, i do like ibiblio
> > > > for a single one stop shop for grabbing jars i need... to drop in my
> > > > source tree ;-)
> > > >
> > > > I like it when people can check out my source from SVN and simply
> > > > build. This is possible when i place them in SVN. Heck, I can even
> > > > check Sun Jars into my SVN repo! ;)
> > > >
> > > > Thanks to everyone for pointing me in the direction of the system.
> > > > I'll be using it. I'm always open to a compelling argument and a tap
> > > > on the forehead that helps me to see the light.
> > > >
> > > > Many Thanks,
> > > > Brandon
> > > >
> > > > On 4/24/06, Alexandre Poitras <[EMAIL PROTECTED]> wrote:
> > > > > Well you can use *system* dependencies but you loose tons of
> > > > > advantages. Instead, maybe you should just populate your local
> > > > > repository using the install plugin and -o to run mvn offline.
> > > > >
> > > > > On 4/24/06, Brandon Goodin <[EMAIL PROTECTED]> wrote:
> > > > > > Is it a requirement that i use the remote repository for jars? Is
> > > > > > there a way to reference jars that are distributed with the code 
> > > > > > when
> > > > > > checked out from the code repository?



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to