gpt4 book ai didi

maven - 如何从swagger codegen maven插件运行只生成目标

转载 作者:行者123 更新时间:2023-12-03 17:31:23 27 4
gpt4 key购买 nike

我正在使用 swagger codegen maven 插件从 swagger 规范生成服务器 stub 。如果我运行 mvn compile然后它正确生成并编译项目。但是,有时我只想运行生成。

具体来说,我想避免编译整个项目并运行另一个在验证阶段运行的插件(checkstyles)。理想情况下,我想从 swagger 规范生成生成的类并编译这些类,而不是整个项目。

这里的用例是,在开发时,我可能需要更新规范并在整个项目无效(或不会,新规范)时重新生成。我读过你可以使用“前缀:目标”。我试过以下,但没有工作:

mvn swagger-codegen-maven-plugin:generate
mvn swagger-codegen:generate
mvn swagger:generate
mvn codegen:generate

它给出(例如)

No plugin found for prefix 'codegen' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories



我还读到您可以使用“groupid:artificatid:version_goal”,所以我尝试了:
mvn io.swagger:swagger-codegen-maven-plugin:2.4.0-SNAPSHOT:generate

这似乎更进一步,但给出了错误

Failed to execute goal io.swagger:swagger-codegen-maven-plugin:2.4.0-SNAPSHOT:generate (default-cli) on project com.carus.api.base: The parameters 'inputSpec', 'language' for goal io.swagger:swagger-codegen-maven-plugin:2.4.0-SNAPSHOT:generate are missing or invalid



我的 pom 结构有点复杂。有几个 API。每个人在某些方面都是自己的项目。它们有一个共同的父 pom 和执行目标,项目 pom 只设置某些变量。用作 inputSpec 的变量在项目 pom 中定义,但在基本 pom 中定义了语言。 (这里提到的 .base 项目实际上是基础 pom 所在的位置,并且是一个抽象包( <packaging>pom</packaging> )。如果我指定一个特定的项目,我会得到同样的错误,但指的是该项目。

问题:
  • 我什至可以实现我想要的(从规范和
    仅编译该代码而不是整个项目)有目标吗?
  • 如何找出用于“前缀:目标”语法的“前缀”?

  • 我最接近的是跑 mvn generate-sources -Dcheckstyle.skip=true .这会生成,但我认为它不会编译生成的类。所以我必须在 Eclipse 中清理项目以触发它重新编译。

    最佳答案

    1. How to find out what "prefix" to use for the "prefix:goal" syntax?


    插件的前缀应该在这个文件中:“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>
    ...

    关于maven - 如何从swagger codegen maven插件运行只生成目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53508345/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com