It is possible to use Impala for such a scenario, I think.
With Impala you have the concept of a host project, and then attached to this, you have various modules. The host
project is just a standard Spring web project, with classes in WEB-INF/classes, etc. Sitting beneath this you have the
modules, which have visibility of the all classes in the host project (ie. the existing system).
So you could introduce new modules into this environment which do the extra stuff you need without having to make any
changes to the existing part of the application.
As time goes on you could "pull down" code and features from the host project to the modules, until eventually the
entire system would in the modules.
(You would of course be restricted in your library choice - you would be add new libraries, but you would not be able to
stop libraries from your existing application from being visible to the modules, and you would not be able to "override"
the versions, as you rightly recognise.)
Regarding my own experience ... I am coming out of the other side of a similar situation, although the approach we took
was quite different - to build an entirely new system out of what could be reused from the old, but using a new domain
model, architecture, etc. We resisted building new features on the old code base, which is now pretty much frozen,
having been long since overtaken by the new system. The problem of course for this approach is that the transition in
this situation can be lengthy and commercially potentially a non-starter.
Regards,
Phil