Maven/Swagger:生成一个模块(包括 POM)——然后在同一构建中将其用作 dep?

Ben*_*ler 5 java maven swagger

我用来swagger-codegen-maven-plugin生成一组存根(java用于客户端,jaxrs用于服务器)。我通过调用插件生成两个 Maven 项目来完成此操作。

但是,生成会为每个生成的子项目创建POM,显然,如果它们尚不存在,我无法将它们作为顶级 POM 中的依赖项引用!

这是如何做到的?Maven 是否提供了获取动态生成子模块的机制?

San*_*Dey 1

是的,如果您知道子模块的路径和名称,您可能已经可以预定义父 pom。

step1:创建maven父pom来执行多个子模块。您当前基于 swagger 的 Maven 构建应该是此父 pom 下的子模块。

步骤2:确保父pom中定义的模块的执行顺序是首先执行基于swagger的模块。

步骤3:首先运行基于swagger的maven模块一次。这将生成其他 Maven 项目。根据生成的模块的名称和子项目的路径,您现在可以在父 pom 中引用它们。

步骤 4:从父 pom 模块运行聚合构建。确保在首次运行聚合构建时子 POM 的版本已经存在。否则 Maven 可能会抱怨缺少模块。我假设 maven 在启动相应模块之前将子 pom 文件加载到内存中。所以这应该有效。

是多模块构建的示例。