首页 > 解决方案 > 文档的生成应该在父模块还是模块中完成?

问题描述

我对 Maven 还很陌生,并且不确定各种组件的正确角色。

我一直在使用以下 Maven 项目结构来开发微服务:

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

服务定义使用 Swagger 完成,yaml 文件存储在父项目中。

我现在想建立一个包含文档和报告的站点。对我来说,将站点存储在父模块中并从子模块中收集 javadocs、surefire 报告等似乎是合乎逻辑的。例如,我添加swagger2markup-maven-plugin到父 pom 以从 swagger yaml 生成文档。

我遇到的第一个问题是父 pom 执行swagger2markup-maven-plugin并生成 HTML。但是,它在子模块上执行相同的目标并失败。

似乎我不了解导致这个问题的父母和孩子的角色。Swagger 文档只需要生成一次——而不是从每个子模块生成——所以父模块似乎是显而易见的选择。

那么为什么要为每个孩子执行父母中的插件,我该如何防止呢?我仍处于项目的早期阶段,因此我可以在适当的时候重新组织模块结构。

我已经尝试了https://stackoverflow.com/a/14653088/11249中建议的解决方案,但无法让它为我工作。

标签: mavenswaggerjavadoc

解决方案


您可以使用 -N 开关来在生成文档时不递归到子项目中。在您的服务父 pom.xml 上执行以下命令(或您喜欢的任何其他命令)。(只会为这个 pom 执行)

mvn -N  swagger2markup:convertSwagger2markup

推荐阅读