在generated-sources目录中编译生成的maven项目

时间:2016-09-23 05:31:49

标签: java maven swagger-codegen

使用swagger codegen maven插件生成一个完整的maven项目(带有自己的pom.xml)。它将项目输出到generated-sources / swagger /目录。但是,此目录中的java源代码是针对驻留在我的生成器项目的pom.xml中的依赖项进行编译的,而不是针对生成的依赖项。

这样的配置是否可行?我已经阅读过有关maven antlr4和构建帮助程序插件的内容,但它们似乎并不适用于此目的。

1 个答案:

答案 0 :(得分:0)

使用 openapi-generator-maven-plugin 生成源码。比 maven-invoker-plugin 构建和测试生成的源代码。

 <plugin>
   <groupId>org.openapitools</groupId>
   <artifactId>openapi-generator-maven-plugin</artifactId>
   <version>${openapi-generator-maven-plugin.version}</version>
   <executions>
     <execution>
       <goals>
         <goal>generate</goal>
       </goals>
       <configuration>
         <inputSpec>swagger.yaml</inputSpec>
         <generatorName>java</generatorName>
         <skipValidateSpec>true</skipValidateSpec>
         <output>${project.build.directory}/generated-sources/openapi</output>
       </configuration>
     </execution>
   </executions>
 </plugin>

 <plugin>
   <artifactId>maven-invoker-plugin</artifactId>
   <version>${maven-invoker-plugin.version}</version>
   <configuration>
     <pom>${project.build.directory}/generated-sources/openapi/pom.xml</pom>
   </configuration>
   <executions>
     <execution>
       <phase>process-sources</phase>
       <goals>
         <goal>run</goal>
       </goals>
     </execution>
   </executions>
 </plugin>