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






Reply via email to