У меня есть структура проекта, какКаков правильный подход к сборке ресурсов модуля в проекте Maven?
module-a/src/main/java
module-a/src/main/styles
module-distribution/src/main/assembly
модуля-распределение зависит от модуля-а, и они оба разделяет родительский POM и включены в качестве модулей в этом родительском П.
Идея состоит в том, чтобы иметь макет сборки, как
my-final-assembly/lib
my-final-assembly/styles
Где Lib каталог содержит все проектные артефакты, включая зависимости (т.е. модуль-a.jar и его банки зависимостей) и модуль-a.jar не должны в нем содержится его каталог стилей. каталог стилей должен находиться в моей-final-assembly/styles.
я могу заполнить Lib каталог легко включая
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
</dependencySet>
в моем файле сборки. Но как насчет модулей-a/src/main/styles? я могу
- включить его в модуль-артефакт (он будет находиться в модуле-a.jar)
- не включить его в модуль-a.jar.
Несомненно, как 1), так и 2) недействительны для меня. В первом случае мне нужно каким-то образом извлечь каталог стилей из моего модуля-a.jar. Во втором случае каталог стилей вообще не будет скопирован, так как копирует только артефакт, а не целую целевую папку.
У меня есть последнее средство создания отдельного модуля для содержимого каталога стилей и создания модуля, зависящего от него, но для меня это выглядит излишество. Хотя было бы легко настроить мой файл сборки, чтобы получить то, что я хочу в этом случае. Но отдельный модуль для кучи шрифтов и xmls, которые нужен только модулю? Это было бы грустно, хотя я готов, если это то, что вы называете Maven Way.
Спасибо за подсказку, Паскаль! В проекте есть куча зависимостей, модуль-а - не единственный, поэтому я выбрал второй подход. I pack module-a.zip с идентификатором сборки со стилями: module-a-with-styles.zip/lib/module-a.jar, module-a-with-styles.zip/styles Затем после некоторых настроек в final-assembly.xml я получаю то, что я ожидал. Кстати, это распространенная практика, чтобы опубликовать подробные сведения о моем рабочем решении в качестве ответа на вопрос, чтобы все могли его увидеть? Эта область комментариев не позволяет довольно форматировать – zamza
@zamza. Добро пожаловать. Что касается вашего вопроса, ваша реализация может быть немного конкретной, но если вы считаете, что ее можно повторно использовать кем-то другим, не стесняйтесь. Конкретно или нет, это не повредит. –