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