Должна ли генерация документации выполняться в родительском или модуле? - PullRequest
0 голосов
/ 20 ноября 2018

Я все еще довольно новичок в Maven и не уверен в правильности ролей различных компонентов.

Я использовал следующую структуру проекта Maven для разработки микросервисов:

service-parent
+-- rest-service-module
+-- frontend-js-module
+-- ...

Определение сервиса выполняется с использованием Swagger, а файл yaml хранится в родительском проекте.

Теперь я хотел бы настроить сайт, который должен включать документацию и отчеты.Мне кажется логичным хранить сайт в родительском и собирать Javadocs, верные отчеты и т. Д. Из дочерних модулей.Например, я добавил swagger2markup-maven-plugin к родительскому pom, чтобы сгенерировать документацию из swamger yaml.

Первая проблема, с которой я столкнулся, заключается в том, что родительский pom выполняет swagger2markup-maven-plugin и генерирует HTML.Тем не менее, он выполняет ту же цель для дочерних модулей и завершается неудачей.

Кажется, что я не понимаю роли родительских и дочерних poms, что приводит к этой проблеме.Документация Swagger должна быть сгенерирована только один раз - не из каждого дочернего модуля - поэтому родительский вариант кажется очевидным выбором.

Так почему плагин в родительском элементе выполняется для каждого ребенка и как я могу предотвратить это?Я все еще на начальной стадии проекта, поэтому я могу при необходимости реорганизовать структуру модуля.

Я пробовал решение, предложенное в https://stackoverflow.com/a/14653088/11249, но не смог заставить его работать ная.

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете использовать ключ -N, чтобы не повторять подпроекты при создании документации.Выполните следующую команду (или любую другую, которая вам нравится) на вашем родительском сервисе pom.xml.(Это будет выполнено только для этого помпона)

mvn -N  swagger2markup:convertSwagger2markup
...