Swagger 代码生成 - 包 javax.annotation 不存在

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

为什么 swagger-codegen 生成的项目缺少依赖项?

跑步:

java -jar swagger-codegen-cli.jar generate -l java -i swagger.json

生成一个项目,例如:

@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2021-04-27T18:37:06.211+08:00")
public class Table {
  @SerializedName("requiredIndexColumns")
  private List<Column> requiredIndexColumns = null;

无法解决

javax.annotation.Generate
的地方。 然后编译生成的项目抛出:
Error:(33,18) java: package javax.annotation does not exist

以下是测试方法(使用公开招摇):

wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.19/swagger-codegen-cli-2.4.19.jar -O swagger-codegen-cli.jar

然后运行:

java -jar swagger-codegen-cli.jar generate -l java -i https://petstore.swagger.io/v2/swagger.json -o petstore
java swagger swagger-codegen
3个回答
13
投票

正式化Scratte留下的注释,如果您使用的是jdk11,则需要在依赖管理工具中显式添加依赖

例如在maven中

    <dependency>
      <groupId>javax.annotation</groupId>
      <artifactId>javax.annotation-api</artifactId>
      <version>${javax-annotation-api.version}</version>
    </dependency>

6
投票

解决方案是使用以下命令运行:

java -jar swagger-codegen-cli.jar generate -l java -i https://petstore.swagger.io/v2/swagger.json -o petstore -DhideGenerationTimestamp=true

在 Java 类中关闭 @javax.annotation.Generate date 的选项


0
投票

如果您使用的是 swagger-codegen-maven-plugin,则可以通过使用以下配置禁用 @Generate 注释来解决此问题:

<configOptions>
    <hideGenerationTimestamp>true</hideGenerationTimestamp>
</configOptions>
© www.soinside.com 2019 - 2024. All rights reserved.