Как вы работаете с пакетными менеджерами? Исследуя различные исходники и посты на тему, я встретил три подхода работы с джававским мавеном.
1. Перечислять зависимости одна за другой как список-параметр у mkDerivation, который имеет супер-билд скрипт, обходящий все эти зависимости, качающий в билдере их одну за другой и устанавливающий в репозиторий. После чего отдаётся ссылка на репозиторий. Все приложения как бы собирают для себя свой репозиторий. Для экономия места народ активно юзает ln -s.
2. Один репозиторий создаётся при помощи элементарного mkDerivation. Все зависимости устанавливаются в этот один репозиторий как отдельные mkDerivation'ы. В $out
отдаются пустышки.
3. Вариант вроде 2, но только каждая зависимость прождает исполняющий файл, цель которого заключается в том, чтобы сначала убедиться, что зависимость установлена или нет. Если же зависимость не установлена, то установить её в мавен из собранных jar/pom.