Надо делить свой проект на разные модули (разные jar) файлы, чтобы сборка различных частей не зависела сильно от других. И поэтому, достаточно будет пересобрать определенные модули jar, а не весь проект. Рекомендую Gradle, там удобно реализована возможность дробить проект на модули. Рестартить приложение все равно придется. Тем более Gradle понимает, когда надо перекомпилировать модуль, а когда в нем ничего не менялось.