Thanks to everyone who replied, I justed wanted to point out some
issues with switching to Maven, since the developers asked what
complaints Maven evangelists were seeing.
On Mar 21, 2008, at 8:07 PM, Brian E. Fox wrote:
Thanks for the feedback Joshua, a few comments below:
1) I can't do the equivalent of ant -projecthelp
Pointing out that all the common maven commands are documented on the
wiki doesn't seem to alleviate this concern, which I admit really
puzzles me. Has anyone else encountered this complaint about maven? I
think the ability to easy get a list of configured plugins within the
pom would be really handy.
The exact equivalent is nearly impossible since technically it's any
plugin that is in any repo you have configured. (m2e lets you find
this
via the index) If they just want to know the list of phases, I guess
that could be added to the -? Output. Is there something more they
want?
I completely agree that the exact equivalent isn't possible, but most
plugins do have a 'usage' page on their own Maven generated homepages
- is that usage page in the pom? Maybe Maven could have a help
functionality that renders that help to the console, or if not, a way
to call a displayHelp() function of the plugin could be added.
Patrick's suggestion of diplaying the help of configured plugins in
the pom would go a long way, most (all?) plugins used regularly end up
getting configured in the pom anyway.
I could imagine something like svn's help:
mvn help test
But hell, the 'and -projecthelp' output is hand written by the build
system maintainer directly in the build.xml, why not add a
<projecthelp> tag to the pom file? It could get generated when mvn
site is run and displayed when mvn projecthelp is called (oh-> Does
that mean it could be a plugin?)
<projecthelp>
Use our project blah blah like this....
mvn -Dtest=MyCoolTest test
or use our helper:
./bin/mvntest MyCoolTest
</projecthelp>
2) We have lots of ant run-* targets I like to use.
My response: Letting them know of the mvnrun script I've checked into
our source tree that effectively runs the following:
I think the exec plugin can do something similar.
As I said, (sorry, I wasn't clear), I wrote a mvnrun shell script that
simplifies the command line required by the exec plugin, for example,
in our source tree:
./bin/mvnrun MyCoolMainClass --a=1 --b=2
is the equivalent of:
mvn -Dexec="com.whatever.MyCoolMainClass" -Dexec.args="--a=1 --b=2"
3) We use the ant tags target to run etags to create emacs TAGS files
I pointed these developers to a mktags script that does the same
thing. I also added 'mvn generate-sources' to the script first, to
make sure the tags catch those generated java files.
The tags target could also be wrapped in an ant based plugin.
Yeah, I figured the ant target we have was just calling a shell
script, so why not cut out ant and go straight to the script.
--
Joshua ChaitinPollak | Software Engineer
Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970