On May 21, 2007, at 12:09 AM, Jacek Laskowski wrote:
n 5/20/07, Jason Dillon <[EMAIL PROTECTED]> wrote:

I really don't see how using this helps with anything... 'cept maybe
reduce the number of artifacts in the repo, and maybe remove the need
for that ${version} properly... at the expense of users not being
able to use past snapshot artifacts when newer snaps break their
project.

I meant (but never tried it myself, but I guess I should) that
declaring dependency with an exact number not SNAPSHOT would work as
if the SNAPSHOT were released. Might it work?

Yes, this will trick Maven's release muck and snapshot updating logic into thinking that those SNAPSHOT artifacts are not really SNAPSHOTs... but in reality they still are. I've sent lots of mail on this to the G list specifically about using these types of pinned SNAPSHOT artifacts and how that is very harmful.

The crux of the problem is that these *are still SNAPSHOT artifacts* and they still live in SNAPSHOT repositories, which most have a lax policy about keeping those artifacts around or changing them. Compaired to non-SNAPSHOT repositories, which are (in theory) supposed to contain artifacts that never change and are never removed. Of course we all know that is crazy to rely on, since its just a filesystem, with no real checks or balances to ensure that policy is enforced, but that is how they are supposed to work.

I can go on and on if you need more clarification for why its bad to use pinned snapshots, except in very rare cases (and maybe not even then its really a good choice). I certainly do *not* recommend using them unless you really, really, really need to.

Um... and really, if that was what you were talking about I certainly did not get that from the content of your mail :-P

 * * *

Maven is good and Maven is bad... sometimes you love it, sometimes you hate it... or at least that is how it is for me. I keep thinking about rewriting something like Maven with out all of its horrible wrinkles, but really I'd just end up making another beast that sucked in other ways ;-)

The idea you are floating here to "get around" problems with Maven is really going to just cause you more and more problems. Its Maven's way or the highway in this case... if you try to hack around problems like this you are going to end up with build roadkill for dinner (not really my favorite choice for dinner).

The way to fix this is to... get dependency projects to publish SNAPSHOTs to keep up with code changes, or limit your dependence on SNAPSHOT artifacts. The latter is obviously preferred and easier, though not always possible... which is almost certainly the case with the relationship between the Geronimo and OpenEJB projects.

 * * *

OpenEJB is a wee little project (er, from size of modules, not from purpose and functionality) so I would not expect you to have too much problems using Maven. What exactly are the issues you are seeing?

--jason

Reply via email to