lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Smiley, David W." <>
Subject Improvements to the maven build
Date Wed, 04 May 2011 21:41:45 GMT
Steve Row,

I thought I'd put together a list of interesting differences between the ant build output
and the maven build output.  Before each build I did a full clean and then after the build
I saved a file listing to a text file so that I could diff it.

I'm using svn revision 1087373 (March 31st).

1. The ant build invokes a JSP compiler to validate them.  The maven build does not.
2. Maven seems(?) to compile more modules' tests than the ant build does.
3. The ant build builds the tools module.  The maven build does not.  Probably fine it stays
this way?
4. Ant doesn't build the benchmark module; maven will by default.  A problem for the ant build?
5. The ant build artifacts tend to have a leading "apache-" in front of them. But the maven
artifactId does not have this so the artifacts file names are different, trivially so any
6. The ant solr build puts all its final artifacts into the solr/dist directory, the maven
build does not--it leaves all of them in their build directory. Not a big deal but maybe there's
a way to have the output file go someplace else?  Not sure.

There were two issues that seemed like clear bugs to me that I fixed with an attached patch.
1. solrj's build directory and compile output directory were the same directory, but that's
problematic since building the output jar will result in an error if it sees its own jar file
as an input file to its output jar.  So I added a "classes" directory.  This will result in
a different directory than where the ant builds, though.
2. The dataimporthandler-extras output location was specified such that there was a redundant
path: /extras/extras/, so I fixed this.

By the way, I think it would be really nice to have a maven build instructions file that is
put into place when the get-maven-poms task is run.  The file would have the essential instructions,
it would explain some of the relevant differences to the ant build (notably output file placement,
file name differences), and it would include tips such as how to install the sources and javadoc
jar files into your local repo.  

~ David Smiley

View raw message