Ada*_*dam 5 maven swagger-codegen
我正在使用 swagger codegen maven 插件从 swagger 规范生成服务器存根。如果我运行,mvn compile那么它会正确生成并编译项目。但是,有时我只想运行生成。
具体来说,我想避免编译整个项目并运行另一个在验证阶段运行的插件(checkstyles)。理想情况下,我想从 swagger 规范生成生成的类并编译这些类,而不是整个项目。
这里的用例是,在开发时,我可能需要更新规范并在整个项目无效(或不会,新规范)时重新生成。我读过你可以使用“前缀:目标”。我试过以下,但没有工作:
mvn swagger-codegen-maven-plugin:generate
mvn swagger-codegen:generate
mvn swagger:generate
mvn codegen:generate
Run Code Online (Sandbox Code Playgroud)
它给(例如)
在当前项目和存储库中可用的插件组 [org.apache.maven.plugins, org.codehaus.mojo] 中找不到前缀“codegen”的插件
我还读到您可以使用“groupid:artificatid:version_goal”,所以我尝试了:
mvn io.swagger:swagger-codegen-maven-plugin:2.4.0-SNAPSHOT:generate
Run Code Online (Sandbox Code Playgroud)
这似乎更进一步,但给出了错误
无法执行目标 io.swagger:swagger-codegen-maven-plugin:2.4.0-SNAPSHOT:generate (default-cli) on project com.carus.api.base:目标 io 的参数“inputSpec”、“language” .swagger:swagger-codegen-maven-plugin:2.4.0-SNAPSHOT:generate 丢失或无效
我的 pom 结构有点复杂。有几个 API。每个人在某些方面都是自己的项目。它们有一个共同的父 pom 和执行目标,项目 pom 只设置某些变量。用作 inputSpec 的变量在项目 pom 中定义,但在基本 pom 中定义了语言。(这里提到的 .base 项目实际上是基础 pom 所在的位置,并且是一个抽象包 ( <packaging>pom</packaging>)。如果我指定一个特定的项目,我会得到同样的错误,但指的是该项目。
问题:
我最接近的是 run mvn generate-sources -Dcheckstyle.skip=true。这会生成,但我认为它不会编译生成的类。所以我必须在 Eclipse 中清理项目以触发它重新编译。
小智 0
- 如何找出“前缀:目标”语法使用的“前缀”?
插件的前缀应在此文件中:“swagger-maven-plugin-2.3.1.jar/META-INF/maven/com.github.kongchen/swagger-maven-plugin/plugin-help.xml”。
<plugin>
<name>Swagger Maven Plugin</name>
...
<goalPrefix>swagger</goalPrefix>
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3114 次 |
| 最近记录: |