Currently, there are multiple maven projects in Impala's source. Each one is built separately with a separate maven invocation, while sharing a parent pom (impala-parent/pom.xml). This requires artificial CMake dependencies to avoid concurrent maven invocations (e.g. https://github.com/apache/impala/commit/4c3f701204f92f8753cf65a97fe4804d1f77bc08).
We should unify the Java projects into a single project with submodules. This will allow a single maven invocation. This makes it easier to add new Java submodules, and it fixes the "mvn versions:set" command.