First entry into "Why Maven sucks" journal:
First entry into "Why Maven sucks" journal:

1. Warnings and deprecations are not shown by default.

2. Documentation shows use of <compilerArgument> with mulitple arguments in a
single element:

  <compilerArgument>-foo -bar</compilerArgument>

which is a bald-faced lie. Only a single argument is allowed inside a
<compilerArgument> element. Web search turns up "helpful" advice to use
multiple elements:

  <compilerArgument>-foo</compilerArgument>
  <compilerArgument>-bar</compilerArgument>

Fair enough, and also a bald-faced lie. After spending a bunch of time
debugging why my compiler arguments were not working, I discovered that Maven
was just (silently) using the last one and ignoring/overwriting all of the
previous arguments.

I had noticed while poring over the documentation that it was also possible to
use the so-called "Map version" (whatever that means), which uses this
completely fucking stupid syntax:

  <compilerArguments>
    <foo/>
    <bar/>
  </compilerArguments>

Why is that syntax completely fucking stupid, you might ask? Well, dear reader,
because the arguments that I'm actually passing end up looking like this:

  <compilerArguments>
    <Xlint/>
    <Xlint:-serial/>
  </compilerArguments>

which is a case study in how not to represent information in XML. I didn't even
try that originally because I was sure that it would not work, given the wacky
non-[a-zA-z]+ nature of the argument I needed to supply. The fact that it does
work gives me the fear.

You might wonder if the following form would provide satisfaction:

  <compilerArguments>
    <compilerArgument>-Xlint</compilerArgument>
    <compilerArgument>-Xlint:-serial</compilerArgument>
  </compilerArguments>

Other than being absurdly verbose, it seems right in line with The Maven Way
(tm). However, that results in -compilerArgument=-Xlint and
-compilerArgument=-Xlint:-serial being passed to the compiler. Hilarity
naturally ensues.


git-svn-id: 64ebf368729f38804935acb7146e017e0f909c6b@2859 6335cc39-0255-0410-8fd6-9bcaacd3b74c

samskivert/samskivert,samskivert/samskivert