104 Commits

Author SHA1 Message Date
samskivert 9699eceea7 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: https://samskivert.googlecode.com/svn/trunk@2859 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 21:28:27 +00:00
samskivert 312d38c6b7 GPG plugin configuration, as Sonatype requires published artifacts to be GPG
signed.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2858 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 19:50:26 +00:00
samskivert e68daada41 Properly configure javadoc in our POM build. The POM is now approaching the
line count of the build.xml file, but I suppose that's just because XML is
absurdly verbose (and Maven annoyingly chose to do things like
<quiet>true</quiet> instead of a quiet="true" attribute). I wonder if there's a
Maven plugin that allows you to specify your pom.xml in YAML or some less
verbose format and which automatically converts it to XML. That'd probably cut
the line count by 2/3.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2853 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 19:04:33 +00:00
samskivert ff243af527 Hosting our own Ivy repository is a burden on library users. We really want to
publish our bits to the Maven central repository, which means we need to gird
our loins and wade into the ninth circle of hell: a Mavenized build.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2847 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 16:22:48 +00:00