【问题标题】:How to run just generate goal from swagger codegen maven plugin如何运行从 swagger codegen maven 插件生成目标
【发布时间】:2019-04-29 16:56:07
【问题描述】:

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

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

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

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

它给出(例如)

在当前项目和 插件组 [org.apache.maven.plugins, org.codehaus.mojo] 可用 来自存储库

我还读到您可以使用“groupid:artificatid:version_goal”所以我尝试了:

mvn io.swagger:swagger-codegen-maven-plugin:2.4.0-SNAPSHOT:generate

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

未能执行目标 io.swagger:swagger-codegen-maven-plugin:2.4.0-SNAPSHOT:generate (default-cli) 项目 com.carus.api.base:参数 'inputSpec', 'language' 目标 io.swagger:swagger-codegen-maven-plugin:2.4.0-SNAPSHOT:generate 是 丢失或无效

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

问题:

  1. 我什至可以实现我想要的(从规范生成代码和 只编译那个代码而不是整个项目)有一个目标?
  2. 如何找出用于“prefix:goal”语法的“前缀”?

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

【问题讨论】:

    标签: maven swagger-codegen


    【解决方案1】:
    1. 如何找出用于“prefix:goal”语法的“前缀”?

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

    【讨论】:

    • 嗯...在我的本地 .m2 中找不到该文件我确实有 swagger-codegen-maven-plugin-2.4.7.jar 并在那里查看插件帮助,但它给出了目标前缀为 swagger-codegen。我已经尝试过你建议的招摇和他们没有工作,因此问题......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 2021-05-14
    • 2017-04-15
    相关资源
    最近更新 更多