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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user