lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Grant Ingersoll <>
Subject Re: Modularization
Date Fri, 10 Apr 2009 11:54:36 GMT
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.


On Apr 9, 2009, at 6:48 PM, Earwin Burrfoot wrote:

> On Fri, Apr 10, 2009 at 02:25, Chris Hostetter < 
> > 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/Кирилл Захаренко (
> Home / Mobile: +7 (495) 683-567-4 / +7 (903) 5-888-423
> ICQ: 104465785
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message