My project P depends on dependency A [with a compile scope] which depends on dependency B [with a compile scope].
Unless B is an optional dependency of A, B should be a dependency of P with a “compile(*)” scope (see the table of Dependency Scope and read the note) and should thus be available at runtime.
However, there is a NoClassDefFoundError thrown at runtime of P, which stems from missing B jars.
Since you’re running the project under Eclipse, the class path is setup for you so I’ll exclude a mistake at this level. This leaves us with the case of the optional dependency.
PS: A very useful tool to investigate this kind of problem is dependency:tree
.