У меня есть структура проекта, подобная
module-a/src/main/java
module-a/src/main/styles
module-distribution/src/main/assembly
module-distribution зависит от module-a, и они оба совместно используют родительский pom и включены как модули в этот родительский pom.
Идея состоит в том, чтобы иметь компоновочный макет, подобный
my-final-assembly/lib
my-final-assembly/styles
Где каталог lib содержит все артефакты проекта, включая зависимости (то есть module-a.jar и его jar зависимостей), а module-a.jar не должен содержать в себе свой каталог стилей. Каталог стилей должен находиться в my-final-assembly / styles.
Я могу легко заполнить каталог lib, включая
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
</dependencySet>
в моем файле сборки. Но как насчет module-a / src / main / styles?
Я могу
- включить его в модуль-артефакт (он будет находиться в модуле-a.jar)
- не включать его в module-a.jar.
Конечно, и 1), и 2) недействительны для меня. В первом случае я должен каким-то образом извлечь каталог стилей из моего модуля -a.jar. Во втором случае каталог стилей вообще не будет скопирован, поскольку копирует только артефакт, а не всю целевую папку.
У меня есть последнее средство - создать отдельный модуль для содержимого каталога стилей, и сделать модуль-a зависимым от него, но для меня это выглядит излишним. Хотя было бы легко настроить мой файл сборки, чтобы получить то, что я хочу в этом случае. Но отдельный модуль для набора шрифтов и xmls, который нужен одному модулю? Это было бы грустно, хотя я готов, если это то, что вы называете Maven Way.