I'm really ambivalent about Maven. Having just converted Mahout to
it, am using it for some other projects and used it quite a bit in the
past, I am still on the fence (although I am mostly happy w/ it for
Mahout). I keep being lured in by the promise of it (dep. management,
convention over configuration, POM, and most importantly, being able
to point IntelliJ at it and have it setup my project structures), but
then left hanging by the execution/bugginess of components. For a
simpler project structure like Mahout, it has worked pretty well
except for the release stuff (which was a major pain and still isn't
perfect), but for Lucene, I'm not so sure. Multimodule support in
Maven is OK at best and we have a lot of modules in Lucene.
Having been on the Maven list a number of times in the past, my sense
was that it was overwhelmed by the sheer number of requests for help
and the community itself was not able to keep up, so getting help may
be more difficult. Maybe that has changed since I was last on (about
1.5 years ago)
Customization work in Maven is also a pain, and I have yet to see a
project of any significance that didn't require some customization, no
matter how much you follow the conventions. For instance, Lucene's
automated regression tests come to mind. And, I am willing to bet
Lucene's release process would need to be customized.
Finally, we have a pretty large installed base. This is not something
we should do lightly (not that anyone was suggesting otherwise). We
have a working build system and we have pretty broad Ant knowledge in
the project (including the guy who wrote the book on Ant).
To sum up, I'm -0.9. You might be able to convince me of using Maven,
but the execution would really have to overcome a whole lot in order
to do so.
-Grant
On Apr 9, 2009, at 6:48 PM, Earwin Burrfoot wrote:
On Fri, Apr 10, 2009 at 02:25, Chris Hostetter <hossman_luc...@fucit.org
> wrote:
Or just make it trivial to get all jars that fit a given profile w/o
actually merging those jars into an uber-jar ... does maven's
dependency management have any like "bundles" or "virtual packages"
so
we could publish a "lucene-all-analzers" POM that didn't have an
actual
lucene-all-analyzers.jar but listed dependencies on all of the
individual
jars?
Maven can do this. Not sure transitive dependencies were meant to be
used that way, but they definetly work like you want.
I think ideally the existig contrib/analysis would be broken up by
language -- even if that means only 2 or 3 classes per jar -- but i
don't
deal with multilingual stuff much so i don't have much of an
opinoin ...
perhaps the majority of our users that deal with non-english tend
to deal
with *lots* of langauges so having a single "multilingual-analysis"
module
would be suitable.
I bet lots of users dealing with non-english language deal only with
it, because they're providing local services. Like we're working with
a mix of russian/english/ukrainian.
But my point really is that I don't see any adequate reason to have
dozens of well-defined micromodules.
People that care big time about dead weight in their distributions
should use tools like jar jar links anyway. (If I remember right, one
of its abilities is to build an uberjar from a bunch of jars, dropping
unused classes in the process)
--
Kirill Zakharenko/Кирилл Захаренко (ear...@gmail.com)
Home / Mobile: +7 (495) 683-567-4 / +7 (903) 5-888-423
ICQ: 104465785
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org