Я пытаюсь создать сборку для большого (более 100 модулей) многомодульного проекта Maven.
В некоторых, но не во всех модулях есть различные файлы, которые нужно включить в окончательную сборку, но мне трудно понять, как их туда достать.
Вот макет типичного модуля:
+- pom.xml
+- src
| +- main
| +- java
| +- ...
| +- resources
| +- ...
| +- scripts
| +- ...
Этот модуль имеет упаковку JAR, поэтому основным артефактом является файл JAR.
Вот желаемый формат финальной сборки:
+- bin
| +- <union of all files from src/main/scripts in the various modules>
+- lib
| +- <union of all JAR files produced by the various modules>
Я знаю, как выполнить часть lib структуры сборки, но понятия не имею, как выполнить часть bin.
Это сообщение в блоге кажется, предполагает, что каждый модуль должен создавать свою собственную сборку (по сути, фрагмент сборки), которая затем будет объединена вместе моим фактическим компонентом сборки.
Так это делается в Maven? Это кажется ужасно тяжеловесным и медленным. Есть ли другой/лучший способ?
Прежде чем ответить, обратите внимание на следующие факты:
- В этом проекте используется плоская модульная структура (если это имеет значение). Переход на вложенную структуру невозможен.
- Не могу объединить скрипты в один модуль. Даже если бы я мог, есть другие произвольные файлы, которые также необходимо запаковать в финальную сборку, которые нельзя объединить в одном месте (я использовал скрипты в качестве простого примера для иллюстрации проблемы).
- Да, я думаю, что 100 модулей — это слишком много, но я не могу это контролировать.
- Учитывая большое количество модулей, я бы предпочел решение, которое не требует изменения каждого и каждого POM.