We solve this by using SBT subprojects and then having a very minimal "node" project using the Akka microkernel that reads in the cluster role for the given node and creates the top-level actor for the appropriate project. The node project has the other subprojects as dependencies.
Essentially,
if(role.equals("analytics"))
system.actorOf(Props.create(AnalyticsLeader.class), "analytics-leader");
We wind up having our entire code base on every node but that's a small price to pay in our opinion. We just have to set the appropriate config parameter and that node spins up as whatever want.