Follow the suggestions listed here: http://markmail.org/message/wygh25tdl4w6yyvo
1) keep build/trunk/parent-pom - overall UIMA project common factored-out things for sharing among all projects in UIMA
2) for each multi-module project (uimaj, etc.) have an additional parent pom that inherits from (1); make submodules inherit from this. This pom will hold overrides/updates to the common parent pom. Over time, things in here that are common with other multi-module projects within UIMA will be moved to (1).
3) for each multi-module project, define a top-most pom that's an aggregator for (2) and the submodules. To make this buildable in trunk, put <relativePath> elements for the local parent pom. Or, even better, put the top-most pom in the directory that contains all the projects, which is the Maven convention. Then, you don't need the <relativePath> elements at all, things work by convention. (Well, after trying this, this isn't quite correct, the convention applies when the "parent" pom is in the containing directory, not the "aggregating" pom.)