The embedded module pom should be as precise as possible about dependencies so it is crystal clear what needs to be on the embedding app's classpath.
1) Any dependency should have an exclude to exclude all transitives. So all deps should have to be declared in order to compile.
2) Any dependency that at runtime is only used via the embedded process side modular classloader should use scope 'provided'. These should also be grouped together in the pom. At runtime these dependencies do not need to be available to the embedding app's classloader; the embedding app creates a modular classloader configured with an appropriate module path and these deps are loaded that way. The maven 'provided' notion basically aligns with this concept.