These folders host the maven metadata which are used to 
build release binaries for hosting in the central maven 
repositories.  These are not considered the "canonical" 
build, but are maintained seperately by (a) volunteer(s) 
with an interest in easy use of Guava by the Maven build 
system.

As a convenience, these folders have been set up to 
provide alternate packaging of the sub-pmodules, which 
correspond to their respective java packages, with 
sources symbolically linked back to the main project.  
This will work to allow command-line builds on MacOS X 
or other Unix platforms which support symbolic linking, 
but is not known to work on Windows platforms.  
(Obviously the deployed binaries in maven repostories 
will work fine on any compliant JVM).  

The maintainers of these metadata have used M2Eclipse 
to import these projects directly into Eclipse.  Please 
remember that this codebase uses @Override annotations 
on methods which implement an interface method, and 
therefore require a JDK 1.6 (or newer 1.5 with the 
appropriate fix) to support this behaviour.  Executing 
Maven with an appropriate JAVA_HOME env is sufficient, 
and these metadata do not have toolchain restrictions 
currently set up.

Christian
cgruber@google.com
