What's our strategy here?
1) publish 2 jars of each with a different classifier ? 
 either -hadoop1 and -hadoop2 or a classifier for one and none for the other
2) have a single jar (per module) and isolate the differences in a dynamic shim that would be chosen at runtime depending on the hadoop version?
What are the things that force recompilation currently ?
What happens when you run the version compiled with hadoop1 on hadoop2 ?