Second entry into "Why Maven sucks" journal:

Sun "enhanced" the jar file specification to allow dependencies to be expressed
inside jar files, which cause the JVM to try to magically add dependent jar
files to the classpath. This is half-assed and wrong in too many ways to
enumerate here.

They then helpfully added activation.jar to mail.jar under the multiple
misguided assumptions that no one would ever possibly need to use mail.jar
without also having activation.jar in their classpath, with that exact name,
and located precisely in the same directory. I can't possibly imagine devating
from those implicit requirements.

Maven then upped the ante on this little fiasco by deciding that any time the
Java compiler generates a warning that they can't parse, they should fail the
build. Clearly it's critical that your build system be conversant in every
possible warning that might be emitted by your compiler. As a result, when I
fix their boneheaded default of suppressing warnings by default, the build now
fails with this demonstration of awesomeness:

  could not parse error message: warning: [path] bad path element
  "/home/mdb/.m2/repository/javax/mail/mail/1.4.1/activation.jar": no such file
  or directory

Thank you Sun, and thank you Maven.

Fortunately, I can tell javac to not emit warnings for these bogus jar
dependencies, which I have done.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2860 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
samskivert
2010-09-08 22:56:00 +00:00
parent 9699eceea7
commit 5cae01afd6
+1 -1
View File
@@ -87,7 +87,7 @@
<target>1.5</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<compilerArguments><Xlint/><Xlint:-serial/></compilerArguments>
<compilerArguments><Xlint/><Xlint:-serial/><Xlint:-path/></compilerArguments>
<excludes>
<exclude>com/samskivert/velocity/**</exclude>
<exclude>com/samskivert/xml/**</exclude>