如何以编程方式调用swagger codegen?

问题描述 投票:3回答:1

我正在使用swagger-codgen-cli.jar生成一个宁静的Java jax-rs api。现在,我通过一些命令行选项调用java -jar来执行此操作。

java -jar swagger-codegen-cli.jar generate -i api.yaml -l jaxrs -o ./outputdir

哪个工作正常。

但是我想从Java程序进行此调用,即将codegen.jar包含到我的类路径中,然后使用相似的参数调用相应的方法。

所以我可以调用swagger-codegen模块中的公共API吗?

java rest jax-rs swagger
1个回答
4
投票

如果我正确理解了您的需求,则希望以动态方式生成存根类。那么,为什么不使用swagger-codegen-maven-plugin生成存根类呢?

如用法部分所述,只需将其添加到build-> plugins部分(默认阶段为generate-sources阶段)

<plugin>
    <groupId>com.garethevans.plugin</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>${project.version}</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>src/main/resources/api.yaml</inputSpec>
                <language>java</language>
            </configuration>
        </execution>
    </executions>
</plugin>

如果要从程序中执行命令,则可以使用Runtime.getRuntime().exec()Runtime.getRuntime().exec() alternatives

© www.soinside.com 2019 - 2024. All rights reserved.