I've peeped over some of the other responses and seems like many want
to keep things as they are... and well I'm a bit confused by that.
Why would you want to have the version of something you require to
build your project to dynamically change? This dynamic behavior
already can cause some projects which have not fully locked down
their plugin dependency versions, when a new plugin is released which
alters runtime behavior, introduces new required configuration or
simply contains new bugs. Software that hasn't changed in a year,
but has been build-able for months and months could suddenly and
mysteriously stop building because of the dynamic insertion and
execution of an new and incompatible required plugin.
So... to avoid mysterious build failures, its best to always set the
version of the plugins you are using for your build.
If that doesn't make sense, then think about non-plugin dependencies,
which your source-code is dependent on. Do you want that library
version to dynamically change as the library vendor publishes new
version, which may or may not be compatible with the version which
was initially in use? That sounds like a massive nightmare in the
making if you ask me. If sally widget maker makes a fancy widget
version 1.0 with classes all in supersallys.widget.*, then 1.1 comes
out and she's not ubersupersallys.widget.* well, your project barf up
all over the place with out you changing any build configuration,
source code, system configuration, atomic clocks, batteries in your
xbox remote, that little lint collecting thingy in the dryier,
kitties litter...
So, why treat the plugin dependencies differently than you would the
library dependencies?
* * *
BTW, I remember a long ass time ago talking to Dain and Jason about
having a meta RELEASE version for m1, so I'd not have to worry about
updating to new versions when they came out... seemed like a good
idea at the time... but in retrospect, that dynamic *feature* will
cause your build endless trouble.
Or should I lay off the crack? This seems really, really, really
obvious to me...
And I think its so obvious that it should be the default behavior for
Maven, since most folks are just going to use that... some will go
and use recommending plugins and such, but most won't.
So, again... me thinky... A.... nay B.
--jason
On Sep 1, 2007, at 7:48 PM, Brett Porter wrote:
I'd like to hear from as many people as possible their opinion this
topic (even if you just want to say '0' so we know where you stand).
[ ] (A) All plugin versions must be specified by the project or its
parent hierarchy somewhere, at the cost of some verbosity (though
we should look at ways to make this easier/smaller/etc per the
current discussion)
[ ] (B) Retain the current behaviour, but make using the enforcer a
best practice to do the above, or some other control mechanism such
as having the repository manager handle the available plugins
[ ] (C) No opinion
[ ] (D) Undecided
[ ] (E) Other (please specify)
Thanks,
Brett
--
Brett Porter - [EMAIL PROTECTED]
Blog: http://www.devzuz.org/blogs/bporter/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]