Hi Joerg,

I'm sorry to hear you're having such difficulty with maven and its error-reporting. All I can offer by way of consolation right now is that I've revamped error reporting pretty substantially over the past few weeks. I started by analyzing all errors that hit the MavenExecutionResponse (and are subsequently reported at the end of the build by the CLI class in Maven), then tracing these back to their root causes, or as nearly as I can do within the confines of maven itself (not the plugin code, since this could come from anywhere). In each case, I've tried to give the user an error message with the details that will help him solve the issue. I'm sure it's not perfect, but it's got a much stronger test suite behind it, which goes to great lengths to reproduce each error condition in a live test-project build. The new error-message formatter also has a stubbed class that will allow us to provide links to various documentation sites for hints on solving that particular problem...these need to be fleshed out, but some of the basic problems have links to documentation out on maven.apache.org currently.

All of this is in Maven's trunk in Subversion, which is the branch where we're pushing toward a 2.1-alpha-1 release sometime this quarter hopefully (unless something comes up to derail the remaining work slated for that release, of course).

As for warnings and other things that happen in mojos but aren't thrown as exceptions, it's an interesting idea to provide a recording Log instance to the mojo, that would allow maven's core reporting infrastructure to reproduce those warnings (in addition to errors and other non-exception output above the INFO log-level) in the build results at the end. I'd be a little concerned about making that output noisy and obscuring the error-formatting work described above, but I'm sure we can find a way to strike a balance there in most cases.

I'm filing this idea under MNG-3381 (http://jira.codehaus.org/browse/ MNG-3381) and will put it on my agenda to revisit it next time I come back to error reporting.

Thanks,

-john

On Jan 25, 2008, at 6:52 PM, Joerg Hohwiller wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi there,

typically if maven fails with something like "required artifact is missing"
you can have a look at the module where the error occurred and scan
the dependencies.
As additional support maven typically prompts an error report including
something like this:

~  Path to dependency:
~        1) net.sf.mmm:mmm-uit-impl-swt:jar:0.9.0-SNAPSHOT
~        2) org.eclipse.swt:swt:pom:3.3.0
~        3) org.eclipse.swt:swt-linux-gtk:jar:3.3.0

Excellent.

However there are still many situations where somewhere deep inside maven an artifact is required that is missing but the user does NOT get a tiny clue
what is going on.
In most cases you do not know which plugin requested the artifact and caused the
problem or anything like that.
Even worse sometimes the required artifact is obviously located in the local
repository but for some reason maven says it is missing.
I still remember several times where a buggy plugin was released and my maven
got an update and further builds all ended with something like
"maven-resources-plugin not found".

I really love maven! It is great, it is cool, it rescues the world.
But sorry to say this: the logging and error handling in maven is (partially)
shitty.
You know these kind of
"This project has been banned from further executions due to previous failures" but however there are no previous failures even if you start with "- X". In these moments a user comes to the point that maven is just a magic wizzard
and if he is in a bad mood you can not do anything against it.

Or what about eclipse:eclipse and the reactor summary that says
all is successfully but if you really read the entire log you will see
that many errors occurred?
IMHO there is a design problem in the way a MOJO can report an error.
If it throws a MojoExecutionException or -Failure the complete build stops
(except for -fn and maybe -fae).
If it does NOT, the maven-core can not know the problem and the reactor
summary says SUCCESS.

So please do not get me wrong. I want to say thanks for maven which is an excellent product but please consider improving exception handling, error tracking and logging in 2.1 and above as well as all mojo developers (including
myself) should do.

Best wishes
~  Jörg
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHmnZTmPuec2Dcv/8RAg90AJ9GS+5og9hs1Iw371GfFNH/0dNjrQCgkuGw
sQRXaoKucjsMvDjXYcHtpxM=
=DCZ/
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---
John Casey
Committer and PMC Member, Apache Maven
mail: jdcasey at commonjava dot org
blog: http://www.ejlife.net/blogs/john
rss: http://feeds.feedburner.com/ejlife/john


Reply via email to