В добавление к ответу Удо есть еще одно сообщение в блоге Sonatype со схемой, объясняющей шаблон Maven для создания нескольких jar-файлов из одного проекта Maven.
Обе статьи рекомендуют принять модульную структуру в своем коде, а не бороться с подходом Maven по разделению больших проектов на набор взаимосвязанных подмодулей.
Метод добавочной публикации
Начните с рассмотрения арифметических элементов, которыми вы на самом деле планируете поделиться. Ваша почта предполагает, что единственный файл, который вы на самом деле публикуете, - это большой zip-файл, содержащий более 100 банок и другие файлы?
Вы можете вызвать инструмент командной строки Maven , чтобы опубликовать этот zip-файл в хранилище Maven:
mvn deploy:deploy-file \
-Durl=$REPO_URL \
-DrepositoryId=$REPO_ID \
-DgroupId=org.myorg \
-DartifactId=myproj \
-Dversion=1.2.3 \
-Dpackaging=zip \
-Dfile=myproj.zip
Этот подход также может быть использован для публикации JAR и POM (содержащих зависимости). В конце концов вы будете поражены количеством поддерживаемых POM .... В это время было бы проще реструктурировать здание этой банки в субмодуль.
Альтернатива технологии переключения сборки
Очень трудно уйти от устаревшей сборки ANT. Они часто содержат сложную, нестандартную и сложную для воспроизведения логику сборки. Для таких проектов я рекомендую использовать Apache ivy для вывода сторонних зависимостей и обмена артефактами с другими проектами (которые могут использовать Maven).
С этой целью я написал сценарий ant2ivy для создания начальной настройки ivy на основе jar-файлов, которые уже существуют в каталоге проекта ANT (обычно передаются вместе с источником).
Использование ivy не избавит вас от того факта, что это хорошая идея для создания подмодулей проекта. Однако он позволяет модернизировать сборку ANT.
Обновление
Да, есть Задачи Maven ANT . Я не использую их, потому что они основаны на Maven 2. Я разочарован тем, что мы все еще ждем их замены Maven 3 aether-ant-tasks (Доступно только на GitHub). Ivy по-прежнему является лучшим выбором для интеграции клиентов не Maven с репозиторием Maven